(19.10.2011 13:45 )ralph.d schrieb: OK. Vielen Dank für die Hilfe. Aber die GetitemNodes und GetItemDesc brauch ich eigentlich nicht wirklich... Hab ich nur probiert, da ich GetData nicht hinbekommen habe.
Und bei GetData kommen nur die Werte wieder raus, die ich im Array angelegt habe und in die DLL übergeben werden. Irgendwie ist das falsch. Als Rückmeldung von GetData bekomme ich ja auch "0" d.h. Fehler. Aber warum ? Ist das angelegte Array falsch initialisiert ?
Habe alle DLL Verweise rausgenommen und nur direkt im Knoten angegeben. Kein Erfolg...
Haben sie vielleicht noch ne Idee ?
Was ist der Wert der von ISMM_Open zurückgeliefert wird? Der Test auf gleich NULL davon ist falsch. Zwar kann er nie NULL sein aber der Wert der im Fehlerfall zurückgegeben wird ist -1. Wenn die Funktion also -1 zurückgibt bewirkt der Test dass die anderen Funktionen doch ausgeführt werden aber wenn sie intelligent programmiert sind machen sie einen Plausiblitätscheck bevor sie versuchen dieses Handle zu dereferenzieren. Und NULL und -1 sind halt eben keine gültigen Werte, so dass es gut sein kann dass die Funktion unmittelbar mit einem Fehlercode zurückkehrt.
Wenn bei ISMM_Open -1 rauskommt, wird der nächste Schritt sein herauszufinden weshalb das so ist. Dazu sollte man den Fehlercode der Windows API Funktion GetLastError() abfragen aber um das in LabVEIW sinnvoll zu machen und nicht irgendeinen Code zu lesen sondern der von der vorhergehenden Funktion, muss man den Funktionsaufruf und den Aufruf von GetLastError() in ein SubVI stopfen und dieses als Subroutine Priorität konfigurieren. Ansonsten können andere Funktion von LabVIEW zwischen den beiden Call Library Nodes aufgerufen werden die den GetLastError() ebenfalls modifizieren.