我是一个 c++ 新手,我正在尝试用IcmpSendEcho2制作一个“ping 工具”,但我无法让它与 APC 一起使用。
我遇到了这个编译错误:
>error C2220: warning treated as error - no 'object' file generated
>warning C4191: 'type cast' : unsafe conversion from 'PIO_APC_ROUTINE (__cdecl *)(PVOID,PIO_STATUS_BLOCK,ULONG)' to 'PIO_APC_ROUTINE'
> Calling this function through the result pointer may cause your program to fail
这是我的 APC 声明:
PIO_APC_ROUTINE GotIt(PVOID param, PIO_STATUS_BLOCK IoStatusBlock, ULONG Reserved);
这是我的 APC 定义:
PIO_APC_ROUTINE GotIt(PVOID param, PIO_STATUS_BLOCK IoStatusBlock, ULONG Reserved)
{
printf("GOT IT!\n");
return NULL;
}
这就是我制作 IcmpSendEcho2 的方式:
DWORD dwRetVal = IcmpSendEcho2(hIcmpFile, NULL, (PIO_APC_ROUTINE) GotIt, NULL,
ipaddr, SendData, sizeof (SendData), NULL,
ReplyBuffer, ReplySize, 1000);
我以为 '(PIO_APC_Rountine) GotIt' 会这样做,因为我找到了这个,但显然我错过了一些东西。
如果您需要任何其他信息,请告诉我。
提前致谢。