Laden...

C++ DLL mit Zeiger in C# Projekt einbinden

Erstellt von mrtom vor 17 Jahren Letzter Beitrag vor 17 Jahren 1.893 Views
M
mrtom Themenstarter:in
12 Beiträge seit 2007
vor 17 Jahren
C++ DLL mit Zeiger in C# Projekt einbinden

hallo,

ich will mit meinen c# projekte ein usb device ansprechen.
das klappt auch soweit bis auf eine funktion die einen zeiger enthält.

der c++ aufruf:


EZUSBCTRLDLLExport int RdRAMByte_from_EzUSB (HANDLE hUSBDevice, int iAddr, unsigned char *iValue);

in iValue soll der aus dem usb device gelesene wert gespeichert werden.
die methode gibt einfach nur einen error code zurück.

mein c# aufruf der nicht funktioniert:


[DllImport("c://EZ-USB-FX2.dll")]  // Read Ram Byte        
        public static extern int RdRAMByte_from_EzUSB(IntPtr hUSBDevice, int iAddr, byte iValue);


byte iValue;

Console.WriteLine(RdRAMByte_from_EzUSB(hUSBDevice, 57376, iValue));

das öffnen und schließen des treiber funktioniert sowie die übergabe des handle.
ich hab nur keine ahnung wie ich das mit dem zeiger umsetze.

vielen dank

mfg

mrtom

M
1.439 Beiträge seit 2005
vor 17 Jahren

[DllImport("EZ-USB-FX2.dll")]   
public static extern int RdRAMByte_from_EzUSB(IntPtr hUSBDevice, int iAddr, out byte iValue);

Btw.: Ist die Dll von Cypress, oder eine Eigenentwicklung?

T
36 Beiträge seit 2007
vor 17 Jahren

Wie verhält sich das eigentlich mit Unsafe Code?

unsafe {
char* p;
}

Eher ein Tabu oder gängige Praxis?

M
1.439 Beiträge seit 2005
vor 17 Jahren

Wie verhält sich was?

Unsafe-Code habe ich noch nie verwendet/gebraucht. Es gibt meistens eine bessere Alternative.

T
36 Beiträge seit 2007
vor 17 Jahren

Was du gebraucht/genutzt hast, hat mich eigentlich weniger interessiert.
Es bietet sich an, ob im konkreten Fall eine Lösung, sei mal dahingestellt. Ich selber habe es biser auch nicht genutzt, daher die Frage.

Bis jetzt höre ich nur ein klares Nein dazu.

M
mrtom Themenstarter:in
12 Beiträge seit 2007
vor 17 Jahren

thx für die schnelle antwort werd gleich mal testen.

die dll ist ne eigentwicklung eines kollegens.
wir nutzen ihn für den datenaustausch von pc und cypress fx2 controllern unter c++ und labview.
da ich von c# begeistert bin wollte ich die dll mal in c# einbinden.

mfg

mrtom

M
1.439 Beiträge seit 2005
vor 17 Jahren

Cypress bietet seit kurzem einen eigenen Treiber + .Net Dll für den FX2 an. Habt ihr den Treiber von Cypress mal probiert?

M
mrtom Themenstarter:in
12 Beiträge seit 2007
vor 17 Jahren

habs getestet funktioniert.
thx

@marsgk
danke für den tip.
hab ich noch gar nicth gesehen.
werd ich in zukunft mal ausprobieren und gucken ob er sich für meinen einsatz eignet.

mfg

mrtom