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