我有一个VS2008 C ++项目,目前我是在VS2010上编译的。 它包含一个dll和执行GUI项目。
使用x64标志构建dll时没有任何错误,但GUI有一些LNK错误可以在dll中运行。 “未解决的外部符号......”(错误LNK 2019和2001) 使用Win32标志没有LNK错误。
例如我有错误:
unresolved external symbol "public :void _cdecl aaa::bbb(void)*(?bbb@aaa@@QEAAXXZ) referenced in function "public:__cdecl ccc::ccc(class aaa &)" (??0@@QEAA@AEAVaaa@@@Z)
我在x64操作系统上运行。
请帮忙吗?
答案 0 :(得分:1)
据我了解,您的问题如下:
您的解决方案包含一个类库项目和一些提供用户界面的somesort应用程序项目。
为win32位环境设置时,您的解决方案可以毫无问题地编译,但在为x64位环境编译时会显示链接器错误。
在编译x64环境时,很可能找不到GUI引用的类库项目输出。
我建议您尝试将配置管理器设置为x64或Win32来构建类库项目以匹配您的GUI项目。
检查您的项目配置是否未将类库构建到特定于环境类型的目录,并确保您的GUI项目使用对类库项目的引用而不是输出DLL。
同时检查您的dll是否实际构建在x64环境下。
还可能需要检查您的类库项目是否使用任何旧的Win32特定库。
答案 1 :(得分:0)
如果我理解这一点你想建立一个GUI可执行文件,需要将它与你的自定义dll链接。由于几个原因,可能会出现所描述的错误,但这是我想到的: