Ich habe eine C geschriebene DLL vorliegen. Aus dieser
DLL möchte ich eine Funktion verwenden, welche ein
2-dimentionales Feld als Parameter besitzt.
In C++ geht dies wie folgt:
Funktion im Header:
extern "C" int getDirFromFlash(char *entry[128]);
ansprechen :
char entrylist[128][100];
char *entry[128];
for(int i=0;i<128;i++)
{
entry[i]=entrylist[i];
entry[i][0]=0;
}
if(getDirFromFlash(entry)==0) //funktioniert
{...}
Jetzt stellt sich für mich die Frage, wie macht man es in C#?
Ich habe es mit einem normalen char[]-Feld hinbekommen, aber
ich bekomme es nicht mit einem 2 dimentionalen hin.
Beispiel mit normal char[] Feld:
public Aufruf
{
.......
public sring GetSerial()
{
byte[] buf = new byte[100];
error=ExDLL._getSerialNumber(buf);
return ByteArrayToString(ref buf,buf.Length);
}
}
public class ExDLL
{
[DllImport("blah.dll", CharSet=CharSet.Auto)]
public static extern int _getSerialNumber(byte[] text);
}
Wie lautet nun ein Beispiel für ein 2-dimentionales Feld??
DLL möchte ich eine Funktion verwenden, welche ein
2-dimentionales Feld als Parameter besitzt.
In C++ geht dies wie folgt:
Funktion im Header:
extern "C" int getDirFromFlash(char *entry[128]);
ansprechen :
char entrylist[128][100];
char *entry[128];
for(int i=0;i<128;i++)
{
entry[i]=entrylist[i];
entry[i][0]=0;
}
if(getDirFromFlash(entry)==0) //funktioniert
{...}
Jetzt stellt sich für mich die Frage, wie macht man es in C#?
Ich habe es mit einem normalen char[]-Feld hinbekommen, aber
ich bekomme es nicht mit einem 2 dimentionalen hin.
Beispiel mit normal char[] Feld:
public Aufruf
{
.......
public sring GetSerial()
{
byte[] buf = new byte[100];
error=ExDLL._getSerialNumber(buf);
return ByteArrayToString(ref buf,buf.Length);
}
}
public class ExDLL
{
[DllImport("blah.dll", CharSet=CharSet.Auto)]
public static extern int _getSerialNumber(byte[] text);
}
Wie lautet nun ein Beispiel für ein 2-dimentionales Feld??
Comment