Ich habe eine C++-Klassenbibliothek(DLL) zu schreiben, die von C#-Anwendungen aufgerufen werden soll.
Bei VS 2005 habe ich die Projekt-Eigenschaft Common Language Runtime-Unterstützung (/clr) gesetzt.
Nach dem Einbinden in den C#-Treiber unter Verweise erhält die Methode dort eine Signatur mit einem sbyte* Parameter.
Leider habe ich keine Möglichkeiten gefunden, eine literale Zeichenfolge zu übergeben.
Für C# ist der Datentyp sbyte[] nicht mit sbyte* kompatibel.
Gibt es hier eine einfache Lösung?
Ich habe beide Seiten in der Hand.
Tom
Bei VS 2005 habe ich die Projekt-Eigenschaft Common Language Runtime-Unterstützung (/clr) gesetzt.
Code:
public ref class CCIOCard : public ICIODriver { UINT OpenContext(char* pszDriverName ); … }
Leider habe ich keine Möglichkeiten gefunden, eine literale Zeichenfolge zu übergeben.
Code:
static void Main(string[] args) { sbyte[] driverName = new sbyte[6]; string sdriverName = "ABCDEF"; // Kopierroutine ??? CCIOCard MyCard = new CCIOCard(); UInt32 hndDriver = MyCard.OpenContext(??? driverName ???); … }
Gibt es hier eine einfache Lösung?
Ich habe beide Seiten in der Hand.
Tom