' schrieb:Hallo zusammen !
Ich bin in der LabVIEW-Welt relativ neu und habe einige Schwierigkeiten. Wir steuern mit LabVIEW eine selbstentwickelte Hardware und die Schnittstelle stellt eine ebenfalls selbstentwickelte DLL dar. Im Zusammenhang mit dieser DLL haben sich zwei Probleme ergeben:
1) Ich müsste während der Laufzeit die DLL schrittweise debuggen nachdem sie von LabVIEW geladen und aufgerufen wurde. Ist das möglich und falls ja wie ?
2) Nach dem Beenden des VI scheint die externe und geladene DLL irgendwie noch "aktiv" zu sein. Ein Neuladen der DLL funktioniert nur, nachdem man LabVIEW komplett geschlossen und wieder neu geöffnet hat. Wo liegt das Problem ?
1) Wenn Du eine aktuelle LabVIEW Version hast kannst Du extFuncCatching=False in Dein LabVIEW.ini File setzen und das sollte den LabVIEW Exception Dialog vermeiden und anstelle davon die Möglichkeit bieten um den registrierten SystemDebugger aufzurufen bei einer Exception. Ausser Fehlerexceptions kannst Du dann auch zum Beispiel einen {__asm int 3} User breakpoint in Deinem Code haben.
Alternativ in der Visual C IDE LabVIEW.exe als externes Executable zum Debuggen Deiner DLL angeben. Breakpoint in IDE setzen wo Du willst und dann Execute auswählen.
2) Solange das VI im Speicher ist hat es auch eine Referenz zur DLL offen. In LabVIEW 8.2 und neuer kannst Du aber den Path zur DLL als Parameter der Call Library Node angeben. Bei Übergabe eines leeren Paths wird die zuletzt geladenen DLL aus dem Speicher entfernt. Damit hast Du direkte Kontrolle über wann die DLL geladen und ausgeladen wird.
Rolf Kalbermatter