为 Rundll32.exe 编写自己的 dll 的文档?

1 dll winapi visual-studio-2010 rundll32

可能重复:
如何使用 Rundll32 执行 DLL 函数?

我在哪里可以找到文档(教程、书籍等)来编写我自己的可以使用 rundll32.exe 运行的 dll?

ren*_*ene 6

这是我能想出的最基本的 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