我在VS2010中创建了一个dll项目(Win32控制台应用程序> dll)。我在编译时在项目中放了一些头文件,我得到这个错误:使用VS2010创建C++非托管DLL
error LINK2001: unresolved external symbol [email protected]
这是什么?我如何解决它?
此外,头文件定义了一些抽象类。
我在VS2010中创建了一个dll项目(Win32控制台应用程序> dll)。我在编译时在项目中放了一些头文件,我得到这个错误:使用VS2010创建C++非托管DLL
error LINK2001: unresolved external symbol [email protected]
这是什么?我如何解决它?
此外,头文件定义了一些抽象类。
问:无法构建的.dll(而不是使用.dll的.exe),是正确的?
问:您的.dll源文件中是否有任何DllMain()?
如果不是,你会考虑加一个吗?
问:你确定项目设置是否配置为“DLL”?对于“/ MT”(多线程,静态链接)?问:如果没有其他方法,您是否考虑创建一个新项目,创建一个“hello world”.dll并验证它是否构建?
使用/NOENTRY选项是创建资源专用DLL所必需的选项。使用此选项可防止LINK将对_main的引用链接到DLL中。
项目属性页 - >链接 - >高级:找不到入口点设置为是(/ NOENTRY)
“DLL包含使用/ clr编译的对象不与/NOENTRY链接;图像可能无法正确运行“ http://support.microsoft.com/kb/814472
如果它是一个控制台应用程序,为什么你需要一个DLL? – ThomasMcLeod
@ThomasMcLeod:VS中的向导有点误导 - 首先你必须选择“Win32 Console Application”,然后在第二步中选择“DLL”。 – Simon
项目向导有几个入口点,这是令人困惑的。但是,在“应用程序设置”对话框的最后一页中,您可以进入Win32应用程序向导,但您要选择“控制台应用程序”而不是“DLL”。 – ThomasMcLeod