使用rundll32运行C ++ DLL - 缺少条目

时间:2015-01-28 15:47:42

标签: c++ dll rundll32

所以我尝试使用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"。

1 个答案:

答案 0 :(得分:7)

您可以通过在DLL上运行Dumpbin.exe / exports来仔细检查以查看实际的导出名称。现在哪个 entry,正如错误消息所示。

您需要在extern "C"前加上声明才能禁用C ++名称修改。

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

EXPORTS
entry = entry