2011-04-11 41 views
0

我正在將Visual Studio 2005(Windows XP)中的解決方案遷移到Visual Studio 2008(Windows 7)。該解決方案包含幾個類庫(dll)。這些庫是用C#編寫的。但是,一個庫(名爲「SDEWriter」)是用C++編寫的。該庫是一個CLR項目,並鏈接到使用本機C編寫的外部庫。我無法訪問C代碼。將項目從VS 2005(XP)遷移到VS 2008(Windows 7)時的鏈接器錯誤(2028)

在VS 2005中編譯和鏈接項目進展良好。但在VS 2008中,我得到下面的連接錯誤:

* 錯誤LNK2028:未解決的令牌(0A00000E) 「外部的 」C「 長__stdcall SE_error_get_string(長,字符*)」(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的包含文件夾頭文件
  • 附加Libary名錄:路徑外部庫
  • 附加依賴​​:所有需要的外部庫

我已經搜索了這個網站和網頁,但是我還沒有找到解決方案。如果有人能幫忙,我會很高興!提前致謝。

芭芭拉

回答