public class SendImage
{
public delegate int DWatch(int bytesLeftToSend, IntPtr Response);
ret=0xffff;
public void ReadImageFile()
{
int len = 1495;
DWatch pfWatch = DResponse;
IntPtr pfMethod = Marshal.GetFunctionPointerForDelegate(pfWatch);
ret=Send(len, pfMethod);
}
public int DResponse(int bytesLeftToSend, IntPtr Response)
{
//something;
return 0;
}
}
Der obige Code zeigt das Marshalling von Delegaten in Funktion Zeiger, wie ich es tat. Von diesem konnte ich zurückrufen. Aber später bekomme ich Speicherfehler. Bitte helfen Sie. DankMarshal-Delegat an Funktionszeiger: Speicher beschädigt
//unmanaged call in code
int Send(int length, int(*pfMethod)(int bytesLeftToSend, void * Response))
{
int Remaining = 50;
pfMethod(50);
}
Warum haben Sie diese Frage markiert? '' 'Visual-C++' UND 'C# -4.0' – Eregrith