1 dll winapi visual-studio-2010 rundll32
可能重复:
如何使用 Rundll32 执行 DLL 函数?
我在哪里可以找到文档(教程、书籍等)来编写我自己的可以使用 rundll32.exe 运行的 dll?
这是我能想出的最基本的 Hello World 示例,它适用于rundll.exe. 请按照以下步骤操作:
在 Visual Studio 中启动一个新的 WIN32 DLL 项目(我使用的是 VS2010)
在 dllmain.cpp 中添加:
// this shoud ideally go into the .h file I believe
__declspec( dllexport ) void CALLBACK EntryPoint(
HWND hwnd,
HINSTANCE hinst,
LPSTR lpszCmdLine,
int nCmdShow);
// our hello world function
void CALLBACK EntryPoint(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow)
{
int msgboxID = MessageBox(
NULL,
L"Hello World from Run32dll",
L"Hello World",
MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
);
switch (msgboxID)
{
case IDCANCEL:
// TODO: add code
break;
case IDTRYAGAIN:
// TODO: add code
break;
case IDCONTINUE:
// TODO: add code
break;
}
}
Run Code Online (Sandbox Code Playgroud)
将module.def文件添加到您的项目并在其中编辑以下代码段:
LIBRARY YourDll
EXPORTS
EntryPoint
Run Code Online (Sandbox Code Playgroud)
编译然后从命令行测试
rundll32 YourDll.dll,EntryPoint
Run Code Online (Sandbox Code Playgroud)
你应该看到一个带有三个按钮的 MessageBox
我使用以下 url 来克服 C++ 问题,并且在我努力的早期阶段没有找到 EntryPoint: