プロセスによってロードされたときにMessageBoxを表示する短いDLLを作成しました。ただし、メッセージボックスが2回表示されます。 DLLエクスポート関数が2回呼び出されるようです。 MessageBoxが一度しか表示されないように、コード内で変更が必要なものがあるかどうか確認してください。DLLエクスポート関数が2回呼び出されました
#include <windows.h>
#include <stdio.h>
__declspec(dllexport) void sampledllmain()
{
MessageBox(NULL, "sample text","sample title", 0);
}
BOOL APIENTRY DllMain(HANDLE hHandle, DWORD dwReason, LPVOID Reserved)
{
switch(dwReason)
{
case DLL_PROCESS_ATTACH:
sampledllmain();
break;
}
return 1;
}
Iは、以下に示すようにRundll32の使用DLLをロード:
rundll32 "path to DLL",sampledllmain
で、あなたのテストのための第2のダミー関数を追加してください' rundll32 "DLLへのパス"、dummy' – dvhh
もちろん、2回呼び出されます。 'sampledllmain'を' DllMain'から削除してください。 – Ari0nhh