|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#21 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
ciao, allora la dll riesco a crearla con cygwin (usando lo stesso comando che uso su linux, e quindi caricando le lib di linux da cygwin) senza errori, ma poi, quando tento di caricarla in java, mi da l'errore di can't find dependent libraries...c'è un modo per verificare su windows la correttezza di una dll..e magari capire perchè non la carica in java? grazie.....
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#22 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
Sospetto che la dll cercata è cygwin.dll, il che vuol dire che non hai compilato tramite mingw e che non dovresti usare la dll così ottenuta.
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#23 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
rieccomi qua, allora, è stato prodotta una dll per windows del software ocr, correlato da file di progetto in vc++, quindi sono passato a vc++, riesco tranquillamente a ricompilare la dll e a farla funzioanare, quindi la modifica in modo da poterla richiamare da jni, la compilo senza errori, ma quando la richiamo in java...mi esce il seguente scarno messaggio come output:
"An unrecoverable stack overflow has occured"...ora, può essere che la memoria fornita alla dll sia limitata dalla virtual machine?
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#24 |
|
Senior Member
Iscritto dal: Nov 2004
Città: Tra Verona e Mantova
Messaggi: 4553
|
Prova a lanciare il programma con l'opzione -verbose:jni e vedi se stai abusando dello stack della JVM.
__________________
Uilliam Scecspir ti fa un baffo? Gioffri Cioser era uno straccione? E allora blogga anche tu, in inglese come me! |
|
|
|
|
|
#25 | |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
ecco cosa ho adesso come output:
Quote:
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
|
#27 | |
|
Senior Member
Iscritto dal: Apr 2000
Città: Roma
Messaggi: 15625
|
Quote:
1) un genuino stack overflow 2) calling convention mismatch Propenderei per la seconda ipotesi. Mentre su linux praticamente tutte le librerie adottano lo standard di chiamata "c", su windows si usa spesso lo "stdcall", specie per le funzioni di "interfaccia". La differenza tra le due forme è chi "ripulisce" lo stack dai parametri passati alle funzioni: nella forma "c" è il chiamante a ripulire lo stack; nella forma stdcall è la stessa funzione chiamata. Nota che anche il visual basic ha una simile forma di controllo: otterresti un errore di "invalid calling convention" se richiami da visual basic una funzione di una dll che non sia stata dichiarata come "stdcall".
__________________
0: or %edi, %ecx; adc %eax, (%edx); popf; je 0b-22; pop %ebx; fadds 0x56(%ecx); lds 0x56(%ebx), %esp; mov %al, %al andeqs pc, r1, #147456; blpl 0xff8dd280; ldrgtb r4, [r6, #-472]; addgt r5, r8, r3, ror #12 |
|
|
|
|
|
|
#28 | |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
Quote:
allora, la funzione "pubblica" della dll è compilata come __stdcall, il problema è tutto il resto del programma che la dll utilizza? dovrei compilare tutte le funzioni con l'opzione stdcall? come è possibile farlo da vc++ senza modificare il codice?
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
|
#29 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
ho messo l'opzione /Gz per compilare tutto come stdcall, se non è specificato nel codice..ma ottengo sempre lo stesso errore..
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
|
#30 |
|
Senior Member
Iscritto dal: Nov 2002
Città: Cosenza --> Roma
Messaggi: 853
|
ragazzi, ed invece il problema era la jvm, aggiungendo l'opzione "-Xss512k" adesso funziona perfettamente!!
__________________
GNU MyServer Wants YOU!! We live thinking we will never die. We die thinking we had never lived. Jason Becker |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 22:27.




















