INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.


Antwort schreiben 

LabView DLL in C# nutzen



Wenn dein Problem oder deine Frage geklärt worden ist, markiere den Beitrag als "Lösung",
indem du auf den "Lösung" Button rechts unter dem entsprechenden Beitrag klickst. Vielen Dank!

18.08.2011, 14:49 (Dieser Beitrag wurde zuletzt bearbeitet: 18.08.2011 15:18 von arphex.)
Beitrag #1

arphex Offline
Lab_Net
**


Beiträge: 52
Registriert seit: Jun 2011

NI Dev Suite /LV Prof. 2013 /TS2013_6.1 /Vision 2013
2011
DE

8****
Deutschland
LabView DLL in C# nutzen
Hallo zusammen,

ich weiss nicht ob ich im richtigen Bereich bin.
Kann ja sein, dass ich mich in der Richtung DLL-> LabView befinde - dann bitte verschieben.

Ich habe ein VI, welches SubVi's nutzt.
Dieses wurde durch den Application Builder als "Shared DLL" (nicht Interop) kompiliert.

Bei Quelldateien -> Prototyp festlegen habe ich:

<Void>
<Name>returnvalue</Name>
</Void> IPSupplyGETCurrent(Bool Start, out Bool End, Cluster FehlerEingang, out Cluster FehlerAusgang)

Somit erscheint mir im Header-File im Build Ordner als

Code:
#include "extcode.h"
#pragma pack(push)
#pragma pack(1)

#ifdef __cplusplus
extern "C" {
#endif
typedef struct {
    LVBoolean status;
    int32_t code;
    LStrHandle source;
    } TD1;


void __stdcall IP_Supply_GET_Current(TD1 *FehlerEingang, LVBoolean *Start,
    TD1 *FehlerAusgang, LVBoolean *End);

long __cdecl LVDLLStatus(char *errStr, int errStrLen, void *module);

#ifdef __cplusplus
} // extern "C"
#endif

#pragma pack(pop)


Wie kann ich die nun in C# importieren?

Stand bisher:

class IP_Supply_GET_Current
{

[DllImport("C:\\Users\\test\\SharedLib.lib",
EntryPoint = "Test",
CharSet = CharSet.Auto,
CallingConvention = CallingConvention.Cdecl)]

public static extern unsafe IP_Supply_GET_Current( noch unbekannt... Blink)


Würde mich freuen wenn hier eine interessante Diskussion dazu entstehen könnte.
Im Developer-Bereich bei NI werde ich nicht wirklich fündig, jedoch ist das Thema keine Randerscheinung.

Gruß
Da nicht weiß wie man editiert hier eine Verbesserung des oberen Posts:

Natürlich schauts bei der Shared-DLL im Application-Builder (2010) so aus:

void IP_Supply_GET_Current(TD1 *FehlerEingang, LVBoolean *Start, TD1 *FehlerAusgang, LVBoolean *End)

Einstellung: C-Aufrufkonvention
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren to top
Anzeige
Antwort schreiben 


Nachrichten in diesem Thema
LabView DLL in C# nutzen - arphex - 18.08.2011 14:49
RE: LabView DLL in C# nutzen - oenk - 18.08.2011, 16:24
RE: LabView DLL in C# nutzen - rolfk - 19.08.2011, 07:00
RE: LabView DLL in C# nutzen - M@rRy - 24.08.2011, 07:45

Möglicherweise verwandte Themen...
Themen Verfasser Antworten Views Letzter Beitrag
  Java JAR-Bibliothek in Labview nutzen A_Bachmann 2 6.780 16.05.2014 14:28
Letzter Beitrag: A_Bachmann
  7zip dll in LabVIEW nutzen theumi 3 7.806 13.03.2009 10:26
Letzter Beitrag: RoLe

Gehe zu: