将项目从VS 2005(XP)迁移到VS 2008(Windows 7)时出现链接器错误(2028)

时间:2011-04-11 12:03:55

标签: visual-studio-2008 dll windows-7 managed linker-errors

我正在将解决方案从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头文件的include文件夹的路径
  • 其他Libary目录:外部库的路径
  • 其他依赖项:所有必需的外部库

我搜索了这个网站和网站,但我还没有找到解决方案。如果有人能提供帮助我会很高兴的!非常感谢。

芭芭拉

1 个答案:

答案 0 :(得分:0)

这对你来说是不可能解决的。这是一个ESRI问题。请参阅:ArcGIS forum thread