프로세스에 의해로드 될 때 MessageBox를 표시하는 짧은 DLL을 만들었습니다. 그러나 메시지 상자가 두 번 표시됩니다. 따라서 DLL 내보내기 기능이 두 번 호출 된 것처럼 보입니다. MessageBox가 한 번만 표시되도록 코드에서 수정해야하는 것이 있는지 확인해 주시겠습니까? 아래와 같이DLL 내보내기 함수가 두 번 호출되었습니다.
#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;
}
난 Rundll32는 사용하는 DLL을로드 :
rundll32 "path to DLL",sampledllmain
이, 당신의 검사 결과에 대한 두 번째 더미 함수를 추가하십시오에 48,전화 rundll32 "DLL 경로", dummy' – dvhh
물론 두 번 호출됩니다. 'sampledllmain'을'DllMain'에서 제거하십시오. – Ari0nhh