【发布时间】:2011-08-03 00:29:40
【问题描述】:
我正在将解决方案从 Visual Studio 2005 (Windows XP) 迁移到 Visual Studio 2008 (Windows 7)。该解决方案包含多个类库 (dll)。这些库是用 C# 编写的。然而,一个库(名为“SDEWriter”)是用 C++ 编写的。这个库是一个 CLR 项目,并链接到用本机 C 编写的外部库。我无权访问 C 代码。
在 VS 2005 中编译和链接项目运行良好。但在 VS 2008 中,我收到以下链接器错误:
*错误 LNK2028:未解析的令牌 (0A00000E) "extern "C" long __stdcall SE_error_get_string(long,char *)" (?SE_error_get_string@@$$J18YGJJPAD@Z) 在函数 "public: static bool __clrcall SDEWriter::SDEfuncs::Error(long,class std::basic_string,class std::allocator >)"*
有趣的是:当我将“SDEWriter”设为静态库 (lib) 而不是 dll 时,一切正常!!!
关于“SDEWriter”项目属性的一些附加信息:
- 公共语言运行时支持:旧语法 (/clr:oldSyntax)
- 其他包含目录:外部 C 头文件的包含文件夹的路径
- 其他库目录:外部库的路径
- 其他依赖项:所有必需的外部库
我已经搜索了这个网站和网络,但我还没有找到解决方案。如果有人可以提供帮助,我将非常高兴!提前非常感谢。
芭芭拉
【问题讨论】:
标签: visual-studio-2008 dll windows-7 managed linker-errors