错误 LNK2019: 未解析的外部符号"__declspec(DLL导入) 专用
error LNK2019: unresolved external symbol "__declspec(dllimport) private
项目在VC6.0下正确运行,然而,在我在VS2012下更新后,发生以下链接错误:
revel.lib(BaseEncoder.obj) : error LNK2019: unresolved external symbol
"__declspec(dllimport) private: void __thiscall std::basic_string<char,struct std::char_traits<char>,class std::allocator<char> >::_Eos(unsigned int)"
(__imp_?_Eos@?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AAEXI@Z) referenced in function
"protected: virtual void __thiscall Revel_BaseEncoder::Reset(void)" (?Reset@Revel_BaseEncoder@@MAEXXZ)
有谁能帮我解决这个问题吗?非常感谢! 最有可能的原因是您使用的库是由较旧版本的stl的依赖项构建的。你可以从项目属性中设置编译器使用旧的工具链,这样你仍然可以使用VS 2012并让它编译,前提是你仍然安装了旧的visual studio。
编辑:要更改平台工具集,请转到项目属性->通用,那里应该有一个名为平台工具集的选项,有一个下拉菜单,您可以使用它来选择工具链的旧版本,根据在线msdn文档(链接在这里)
我不确定是否vs6.0会出现在下拉菜单中,但如果没有,你可以在这里找到一个方法来改变它
相关文章:
- 挂起和取消挂起一个文件DLL
- std::threads可以从Windows DLL中的全局变量创建/销毁吗?
- 导入库可以跨dll版本工作吗
- 从C++dll访问C#中的一行主要参数
- 链接到自行创建的dll失败
- 为什么使用 P/Invoke 调用 dll 时,某些计算机中的 LoadLibrary 失败?
- 在调用FreeLibrary后,释放动态链接到具有相同版本的CRT堆的DLL的内存
- 如何指定我希望我的LIB链接到的DLL文件?-Visual Studio 2019
- 如何将图像传输到c++(dll)中的缓冲区,然后在c#的缓冲区中读/写
- C++:将外部库链接到dll库
- 在 Windows 上,是否可以让 dll 在不使用 PATH 环境变量的情况下在另一个文件夹中查找依赖项?
- 不同的Visual Studio版本中缺少.dll
- 从DLL中删除类的实例
- 如何包装第三方DLL在R中使用
- 使用c#访问c++dll中带有char*参数的函数时发生AccessViolationException
- 系统.将数组移交给c#中动态加载的c++DLL时发生AccessViolationException
- 为什么导入Mixed native/CLR lib.dll的本机C++应用程序没有在Mixed lib.dll中的外部变
- 当我使用 C++ 中的 C# dll 来使用 Selenium 时,存在异常处理问题
- Python ctypes:不会按预期加载 dll
- C ++:DECLSPEC,静态库和DLL