我在VS2010中创建了一个dll项目(Win32控制台应用>dll)。我将一些头文件放入项目中,当我编译时出现以下错误:
error LINK2001: unresolved external symbol _dllmaincrtstartup@12
这是什么?我该如何修复它?此外,头文件定义了许多抽象类。
我在VS2010中创建了一个dll项目(Win32控制台应用>dll)。我将一些头文件放入项目中,当我编译时出现以下错误:
error LINK2001: unresolved external symbol _dllmaincrtstartup@12
使用/NOENTRY选项创建仅资源 DLL时是必需的。使用此选项可以防止 LINK 将对 _main 的引用链接到 DLL 中。
项目属性页 -> 链接器 -> 高级:无入口点设置为是 (/NOENTRY)
"/clr 编译的对象所包含的 DLL未使用/NOENTRY进行链接;图像可能无法正确运行" http://support.microsoft.com/kb/814472
问:是.dll构建失败了(而不是使用.dll的.exe),对吗?
问:你的.dll源代码中是否有DllMain()函数?
如果没有,你会考虑添加一个吗?
问:你确定项目设置已配置为“DLL”吗?对于“/MT”(多线程,静态链接)?
如果所有其他方法都失败了,你是否考虑创建一个新项目,创建一个“hello world”的.dll,并验证它是否可以构建?
void DLLMain() {}
也没有帮助。我知道的就是配置类型设置为动态链接库(.dll)。 - atoMerzDllMain
就解决了不同的缺失符号 _dllmaincrtstartup
。 - Bojan Komazec