JNI Callback Problem

  • Themenstarter Themenstarter ph
  • Beginndatum Beginndatum
P

ph

Gast
Hallo zusammen,

ich habe eine JNI- DLL gebastelt, welche durch meine Java- Anwendung geladen wird. Diese DLL soll Telefonieereignisse über die Windows- TAPI bereitstellen. Innerhalb der DLL wird mit dem TAPI- Server kommuniziert. Die DLL übergibt dem TAPI- Server eine Callback- Prozedur (aus der DLL), welche vom TAPI- Server immer dann aufgerufen wird wenn ein Telefonieevent eintritt. Diese Callback- Prozedur wird nie aufgerufen, sobald die JNI- DLL von meiner Java- Anwendung geladen wird. Lade ich die DLL über eine eigene Win32- Anwendung, dann wird die Callback- Prozedur ordnungsgemäß vom TAPI- Server aufgerufen.

Ich bin langsam am verzweifeln. Hat einer 'ne Ahnung warum diese Callback- Prozedur nie aufgerufen wird, sobald meine DLL über Java geladen wird?
 
Ahoi.

Ich nehme an, dass du schon ausgeschlossen hast, dass es irgendwelche Fehler etc. gibt? Dass zB UnsatisfiedLinkError oder Ähnliches Java-Seitig auftauchen, da gewisse Zeiger/C-Strukturen NULL sind usw?

Deine Callback-Methode ist eine C-Methode? Bist du sicher, dass sie nie aufgerufen wird, oder kann es auch sein, dass sie nur ziemlich früh abbricht?

Soweit kann ich nicht mehr dazu besteuern. Dass es über ein C-Programm geht, deutet natürlich darauf hin, dass dein Callback selbst nichts mehr mit Java macht, sonst hätte ich darauf getippt.
 
Also die Aufrufe von Methoden in der DLL (von Java aus) funktioniert wunderbar. Das eigentliche Problem ist, dass meine DLL eine "nicht- JNI- Callback- Methode" hat, welche sporadisch von einer weiteren eingebundenen DLL aufgerufen werden sollte. Diese Callback- Methode wird nicht aufgerufen, sobald meine DLL über die JVM eingebunden wird. Binde ich diese DLL über eine normale Win32- Anwendung ein, wird Sie aufgerufen.
 

Zurück
Oben