Billie
Erfahrenes Mitglied
Hellas!
Also, ich versuche derzeit über JNI in einer Windows-Umgebung über die TWAIN-API ein Bild zu bekommen.
Leider fehlt mir offensichtlich noch das Detail-Verständnis für C und die WIN32-API. Ich habe folgende Zeilen:
Mit GlobalAlloc läuft das Programm durch und mit malloc stürzt meine JVM ab.
Dann habe ich noch folgenden Code, der funktioniert und der Struktur TW_ONEVALUE Werte zuweist:
Bei folgender Variante crashed aber wieder die JVM:
Was genau ist eigentlich ein HANDLE? Ist das jetzt ein normaler Pointer? Warum funktioniert dann malloc nicht und GlobalAlloc schon?
Beste Grüße,
Billie
Also, ich versuche derzeit über JNI in einer Windows-Umgebung über die TWAIN-API ein Bild zu bekommen.
Leider fehlt mir offensichtlich noch das Detail-Verständnis für C und die WIN32-API. Ich habe folgende Zeilen:
C:
((pTW_CAPABILITY) pData)->hContainer = GlobalAlloc(GHND, sizeof(TW_ONEVALUE));
// ((pTW_CAPABILITY) pData)->hContainer = malloc(sizeof(TW_ONEVALUE));
Mit GlobalAlloc läuft das Programm durch und mit malloc stürzt meine JVM ab.
Dann habe ich noch folgenden Code, der funktioniert und der Struktur TW_ONEVALUE Werte zuweist:
C:
pTW_ONEVALUE pval;
// ...
pval = (pTW_ONEVALUE) GlobalLock(((pTW_CAPABILITY) pData)->hContainer);
pval->ItemType = TWTY_INT16;
pval->Item = 1;
Bei folgender Variante crashed aber wieder die JVM:
C:
((pTW_ONEVALUE) ((pTW_CAPABILITY) pData)->hContainer)->ItemType = TWTY_INT16;
((pTW_ONEVALUE) ((pTW_CAPABILITY) pData)->hContainer)->Item = 1;
Was genau ist eigentlich ein HANDLE? Ist das jetzt ein normaler Pointer? Warum funktioniert dann malloc nicht und GlobalAlloc schon?
Beste Grüße,
Billie