Hallo,
Ich wollte eine Methode in eiiner dll datei in meine C# Pro einbinden.
Beim Ausführen stürzt das ab.
dll funtion header :
DWORD WINAPI
Enumerate(
HANDLE hWDMHandle,
PNDIS_STATUS pNStatus,
PWCHAR pBuffer,
PUINT pBufferSize
)
Einbinden in C#:
[DllImport("MyAPIdll", SetLastError=true)]
private static extern unsafe ulong Enumerate (
IntPtr g_hPCASIMHandle,
ulong* pNStatus,
void* pBuffer,
uint pBufferSize);
[/CSHAR]
und aufgerufen:
[CSHARP]
byte[] buf = new byte[2024];
uint iBytesRead = 0;
ulong ioResult;
ulong ndis_status;
unsafe
{
// create a void pointer to buf
fixed (void* pBuffer = buf)
{
ioResult=Enumerate(this.m_iHandle,
&ndis_status,pBuffer,(uint)buf.Length);
}
}
[/CSHAR]
Weiss jemand vielleicht was falsch gemacht habe ?
gruss
Hi,
Sorry,
ICh hab es gefunden:
So ist richtig:
[DllImport("MyAPIdll", SetLastError=true)]
private static extern unsafe ulong Enumerate (
IntPtr g_hPCASIMHandle,
ulong* pNStatus,
void* pBuffer,
uint* pBufferSize);
[/CSHAR]
und aufgerufen:
byte[] buf = new byte[2024];
uint iBytesRead = 0;
ulong ioResult;
ulong ndis_status;
uint buffsize;
unsafe
{
// create a void pointer to buf
fixed (void* pBuffer = buf)
{
ioResult=Enumerate(this.m_iHandle,
&ndis_status,pBuffer,&buffsize);
}
Schau mal nach
Da hast du fast die gesamte Win32 als DLLImport inklusive Typdefinitionen als Codeschnipsel. Verwende ich gern und viel.