(17.10.2011 12:08 )ralph.d schrieb: Hab's nochmal probiert mit Verweis auf die DLL im Knoten selbst. Leider kein Erfolg. Aber GetitemNodes und GetItemDesc geht - siehe angehängtes Bild...
Sagen wir's so: GetItemDesc kracht zwar nicht, aber etwas im Speicher ist garantiert korrumpiert nach dem Aufruf dieser Funktion. Der 4. Parameter dieser Funktion ist nämlich ein Byte Array das vom Aufrufer alloziert werden muss. D.h. man sollte diesen Parameter als Arraypointer von U8 konfigurieren und mit Initialize Array ein Byte Array anlegen und übergeben. Im 3. Parameter übergibt man dann die Länge dieses Arrays und nach Rückkehr kürzt man das Array mit Array Subset auf die Länge die vom 3. Parameter zurückgegeben wurde.
Wenn die Funktion im 3.Parameter einen grösseren Wert zurückgibt dann man am Eingang angegeben hat, hat sie gemäss Dokumentation über das Ende des übergebenen Buffers geschrieben und damit eine Speicherkorrumption verursacht. So wie Du es im Moment implementiert hast übergibst Du einen 16 bit Integer als Buffer, also die Funktion kann genau 2 Bytes reinschreiben ohne den Speicher zu korrumpieren. Zudem initilisierst Du sowohl den 3. als auch den 4. Parameter nicht so dass es unsicher ist was die Funktion den darin überhaupt sieht.