示例:http://msdn.microsoft.com/en-us/library/windows/desktop/dd940359%28v=vs.85%29.aspx
当我在Debug配置中构建它时,一切都很好。
当我在Release配置中构建它时,我无法注册它。当我打电话
regsvr32 ExplorerCommandVerb.dll
它说:
The module "ExplorerCommandVerb.dll" was loaded
but the entry-point DllRegisterServer was not found.
Make sure that "ExplorerCommandVerb.dll" is a valid
DLL or OCX file and then try it again.
我的配置:Windows 8.1 64位上的Microsoft Visual Studio 2013。 Windows 7 32位也是如此。
答案 0 :(得分:2)
该项目的发布版本中缺少设置。不确定它是否由转换过程引起,但我可以按照描述重现问题。
发布版本中未指定模块定义文件。选择ExplorerCommandVerb Project ,在解决方案下一级,然后选择“属性”。选择Linker,然后选择左侧属性树中的Input,然后选择右侧的Module Definition File。在调试模式下,它显示为Dll.def,而在Release模式下则丢失。只需将设置复制到发布模式,它就会按预期工作。
答案 1 :(得分:0)
发现问题:由于某种原因,它没有使用包含在项目中的Dll.def文件。我强迫它将此文件与链接器选项一起使用,现在它可以正常工作。