INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

LabVIEW und Java via JVM/JNI/Jace



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

19.04.2010, 09:56
Beitrag #4

rolfk Offline
LVF-Guru
*****


Beiträge: 2.305
Registriert seit: Jun 2007

alle seit 6.0
1992
EN

2901GG
Niederlande
LabVIEW und Java via JVM/JNI/Jace
' schrieb:Ich habe den call library node verwendet und argv als c-string-zeiger definiert - dann war das wohl falsch? dann werde ich mal schauen wie ich das richtig mache (allerdings kommt der memory-fehler auch wenn ich minWrite nicht aufrufe)

Ich habe es eben auch so gelesen, dass die aufrufkonvention cdecl ist, und habe angenommen dass das der aufrufkonvention C im call library node entspricht, und dieses ausgewählt..

const char * argv[] ist nicht ein C String pointer sondern ein Pointer auf ein Array von C String Pointern. (Könnte auch ein Pointer auf einen C string Pointer sein, da C keinen Unterschied macht zwischen char *var und char var[], respektive die zweite Variante war in vielen früheren C Compilern unbekannt) aber argc und argv sind die üblichen Weisen um Aufrufparameter an die Hauptfunktion eines Executables zu übergeben und dort ist es immer ein Array von Strings.

Da aber LabVIEW Strings nicht gleich C Strings sind kann man nicht einfach ein LabVIEW Stringarray machen und das an die Funktion geben und der const char *argv[] ist ganz sicher kein C String Pointer, d.h. deine Funktion is mit der Call Library Node grundsätzlich nicht aufrufbar.

Wenn der Memoryfehler auch beim Aufrufen von nur der createJVM() geschieht hast Du ein seriöses Problem. Die Funktionsparameter sind ja eindeutig, da kann es also beinahe nicht liegen. Deshalb muss es wohl etwas sein was Du in dieser Funktion tust. Was kann ich Dir leider nicht sagen da ich erstens nicht gut beschlagen bin in C++ und zweitens die Library die Du aufrufst nicht kenne. Von meinen C Kenntnissen her finde ich einiges an dem Code sehr fragwürdig aber kann nicht beurteilen ob es ein Problem ist. Beispielsweise deklarierst Du eine Variable jace::OptionList list; und referenzierst Du die danach. Es ist mir nicht deutlich ob die Deklaration dieser Variablen diese auch gleich initilialisiert oder nicht. Falls nicht müsste der anschliessende Aufruf natürlich schwer in die Hosen gehen.

Rolf Kalbermatter
Technische Universität Delft, Dienst Elektronik und Mechanik
https://blog.kalbermatter.nl
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Antwort schreiben 


Nachrichten in diesem Thema
LabVIEW und Java via JVM/JNI/Jace - Hep - 15.04.2010, 18:16
LabVIEW und Java via JVM/JNI/Jace - Hep - 19.04.2010, 09:04
LabVIEW und Java via JVM/JNI/Jace - rolfk - 19.04.2010 09:56
LabVIEW und Java via JVM/JNI/Jace - Hep - 08.09.2010, 09:09

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Java JAR-Bibliothek in Labview nutzen A_Bachmann 2 7.358 16.05.2014 14:28
Letzter Beitrag: A_Bachmann

Gehe zu: