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;
}
}
위의 코드는 델리게이트를 함수 포인터에 마샬링하여 보여줍니다. 이것으로 콜백을 할 수있었습니다. 하지만 나중에 메모리가 손상됩니다. 도와주세요. 감사합니다대리자를 함수 포인터로 마샬링합니다.
//unmanaged call in code
int Send(int length, int(*pfMethod)(int bytesLeftToSend, void * Response))
{
int Remaining = 50;
pfMethod(50);
}
왜이 질문에'c'' visual-C++'AND'C# -4.0' 태그를 붙였습니까? – Eregrith