2

因此,我尝试使用 rundll 来测试和运行我的 C++ 编写的 DLL ,并且我遵循了此处和其他站点上的指南,入口点如下所示:

__declspec(dllexport)  void CALLBACK entry(HWND hwnd, HINSTANCE hinst, LPSTR lpszCmdLine, int nCmdShow)
{
    //do stuff
}

但是 rundll 进程提示我一个错误消息框,上面写着“C:\path\to\DLL 中的错误缺少条目:条目”

尝试执行命令:“rundll32 C:\path\to\DLL, entry”。

4

1 回答 1

8

您可以通过在 DLL 上运行 Dumpbin.exe /exports 来仔细检查以查看实际导出的名称。正如错误消息告诉您的那样,现在不是。 entry

您需要为extern "C"声明添加前缀以禁用 C++ 名称修改。

对于 64 位可执行文件来说已经足够好了,但_entry@16如果这是一个 32 位 DLL,它仍然不够好,不足以让 rundll32 满意。使用 Project + Add New Item,Code 节点,选择“Module-Definition File (.def)”项目模板。让它看起来像这样:

EXPORTS
entry = entry
于 2015-01-28T15:58:37.107 回答