16.01.2008, 10:30
Hallo liebe LabVIEW Gemeinde,
ich habe ein Problem mit der Übergabe von Datenzeigern in LabVIEW.
Kurz zur Problembeschreibung. Ich will mit hilfe einer dll, und einer Funktion aus dieser dll, eine Datei in einen Umrichter schreiben. Leider gelingt es mir noch nicht ganz dies zu realisieren. Zur besseren Darstellung hier mal die Funktion, die Probleme bereitet.
int CALLBACK _export AllVarDataDownload (unsigned char com, unsigned char addr, char *filename, void(*fktptr)()=NULL, void(*errptr)(int errcode)=NULL)
Zur Erklärung der Funktion: com = COM-Port (macht kein Problem),
addr = Adresse des Umrichters (macht kein Problem),
*filename = ist der Dateipfad (LabVIEW übergebe ich hier einen C-Pointer mit der Größe des Strings in meinem Beispiel 42Byte)
Jetzt die Große Herausforderung für mich: void(*fktptr)()=NULL und void(*errptr)(int errcode)=NULL sind ja Datenzeiger die auf nichts zeigen. Oder verstehe ich das ganz falsch?
Im Anhang ist ein Bild von meinem bisherigen Entwurf. In diesem Beispiel habe ich einfach diese Datenzeiger nicht berücksichtigt, da sie eh NULL sind.
Zu meinem Erstaunen geht bei der Ausführung des VI´s der Umrichter in einen Fehler. d.h. ja schon mal das etwas passiert.
Jetzt meine Fragen:
1. Weiß jemand wie ich diese Datenzeiger korrekt übergeben kann?
2. könnte es eventuell doch an der Übergabe des C-Pointers (Dateipfad) liegen?
Ich danke schon mal all denjenigen die sich dieser Herausforderung widmen.
Viele Grüße,
Nico
ich habe ein Problem mit der Übergabe von Datenzeigern in LabVIEW.
Kurz zur Problembeschreibung. Ich will mit hilfe einer dll, und einer Funktion aus dieser dll, eine Datei in einen Umrichter schreiben. Leider gelingt es mir noch nicht ganz dies zu realisieren. Zur besseren Darstellung hier mal die Funktion, die Probleme bereitet.
int CALLBACK _export AllVarDataDownload (unsigned char com, unsigned char addr, char *filename, void(*fktptr)()=NULL, void(*errptr)(int errcode)=NULL)
Zur Erklärung der Funktion: com = COM-Port (macht kein Problem),
addr = Adresse des Umrichters (macht kein Problem),
*filename = ist der Dateipfad (LabVIEW übergebe ich hier einen C-Pointer mit der Größe des Strings in meinem Beispiel 42Byte)
Jetzt die Große Herausforderung für mich: void(*fktptr)()=NULL und void(*errptr)(int errcode)=NULL sind ja Datenzeiger die auf nichts zeigen. Oder verstehe ich das ganz falsch?
Im Anhang ist ein Bild von meinem bisherigen Entwurf. In diesem Beispiel habe ich einfach diese Datenzeiger nicht berücksichtigt, da sie eh NULL sind.
Zu meinem Erstaunen geht bei der Ausführung des VI´s der Umrichter in einen Fehler. d.h. ja schon mal das etwas passiert.
Jetzt meine Fragen:
1. Weiß jemand wie ich diese Datenzeiger korrekt übergeben kann?
2. könnte es eventuell doch an der Übergabe des C-Pointers (Dateipfad) liegen?
Ich danke schon mal all denjenigen die sich dieser Herausforderung widmen.
Viele Grüße,
Nico