私は 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」で済むと思ったのですが、どうやら何かが足りないようです。
追加情報が必要な場合はお知らせください。
ありがとうございます。