【发布时间】:2020-10-12 21:50:47
【问题描述】:
我正在尝试创建一个可以使用 RunDLL32 执行的 DLL。我知道 RunDLL32 运行正常,因为如果我执行以下命令,它会弹出一个消息框:
rundll32 printui.dll,PrintUIEntry/。
但是我无法让它执行我创建的 DLL,如下所示:
// dllmain.cpp : Defines the entry point for the DLL application.
#include "pch.h"
BOOL APIENTRY DllMain( HMODULE hModule,
DWORD ul_reason_for_call,
LPVOID lpReserved
)
{
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
MessageBox(0, L"Hello1", 0, 0);
break;
case DLL_THREAD_ATTACH:
MessageBox(0, L"Hello2", 0, 0);
break;
case DLL_THREAD_DETACH:
MessageBox(0, L"Hello3", 0, 0);
break;
case DLL_PROCESS_DETACH:
MessageBox(0, L"Hello4", 0, 0);
break;
}
return TRUE;
}
代码编译良好(在 Visual Studio 2017 中,发布模式,x64)但是当我执行时
RunDLL32 MyDLL.dll
什么都没有发生。没有错误消息,没有输出,也没有消息框。这是为什么呢?
【问题讨论】:
标签: c++ visual-studio dll