LabVIEWForum.de
C# PInvoke bei Aufruf von LVDLLStatus - Druckversion

+- LabVIEWForum.de (https://www.labviewforum.de)
+-- Forum: LabVIEW (/Forum-LabVIEW)
+--- Forum: LabVIEW Allgemein (/Forum-LabVIEW-Allgemein)
+---- Forum: DLL & externer Code (/Forum-DLL-externer-Code)
+---- Thema: C# PInvoke bei Aufruf von LVDLLStatus (/Thread-C-PInvoke-bei-Aufruf-von-LVDLLStatus)



C# PInvoke bei Aufruf von LVDLLStatus - beginner85 - 30.01.2012 10:05

Hallo zusammen,

ich habe in LV eine DLL erzeugt, diese möchte ich in C# benutzen.
Beim Aurfue der Funktion "LVDLLStatus" erhalte ich doch leider den Fehler "PInvokeStackImbalance".
Bei der NI-Seite gibt es ein Beispiel wie der Aufruf in C# sein sollte. Habe mich exact an das Beispiel gehalten.
Ändere ich die Einstellungen des Visual-Studios so, das diese Exception nicht gefangen wird, funktionieren die Funktionsaufrufe problemlos.
Gibt es noch irgendwelche Einstellungen die berücksichtigt werden müssen?


RE: C# PInvoke bei Aufruf von LVDLLStatus - beginner85 - 30.01.2012 13:26

Habs gelöst,

liegt am Einbinden der LV-DLL, CallConvention muss noch als Parameter eingefügt werden.


RE: C# PInvoke bei Aufruf von LVDLLStatus - rolfk - 30.01.2012 23:55

(30.01.2012 10:05 )beginner85 schrieb:  Hallo zusammen,

ich habe in LV eine DLL erzeugt, diese möchte ich in C# benutzen.
Beim Aurfue der Funktion "LVDLLStatus" erhalte ich doch leider den Fehler "PInvokeStackImbalance".
Bei der NI-Seite gibt es ein Beispiel wie der Aufruf in C# sein sollte. Habe mich exact an das Beispiel gehalten.
Ändere ich die Einstellungen des Visual-Studios so, das diese Exception nicht gefangen wird, funktionieren die Funktionsaufrufe problemlos.
Gibt es noch irgendwelche Einstellungen die berücksichtigt werden müssen?

Also DLL mit PInvoke in .Net aufrufen ist schon etwas masochistisch. DLL Interfaces sind unmanaged, und dann muss man viel Arbeit machen um darum herum imanaged .Net Interface zu machen. Warum keine .Net Assembly vom LabVIEW Code generieren?