簡體   English   中英

從VS 6到VS 2013的C ++ IDE遷移

[英]C++ IDE migration from VS 6 to VS 2013

VS6可以編譯C ++項目,而不會出現錯誤和警告。 使用VS 2013 Prof.,鏈接器問題出現了。 他們提供了一個模式,即std :: basic_string。

該代碼寫於2007年,但不是我寫的。

由構造函數引用:

vrun.obj:錯誤LNK2019:未解析的外部符號“ __declspec(dllimport)公共:char const * __thiscall std :: basic_string,class std :: allocator> :: c_str(void)const”(__imp_?c_str @?$ basic_s tring @在函數“ public:__thiscall VTrs :: VTrs(class VMessageContext&)”中引用的DU?$ char_traits @ D @ std @@ V?$ allocator @ D @ 2 @@ std @@ QBEPBDXZ)(?? 0VDMTrs @@ QAE @AAVVDMMessageHandlerContext @@@ Z)

在vrun.cpp中:

VTrs::VTrs(VMessageContext& handler_):
Inherited(RXS::rName().c_str()),
_handler(handler_)
{
}

c_str > const char* c_str() const; -C98風格-C11尚未在項目中應用)

在vrun.h中:

VTrs(VMessageContext&);

操作員引用:

vrun.obj : error LNK2019: unresolved external symbol "__declspec(dllimport)
 public: int __thiscall std::basic_string<char,struct std::char_traits<char>,cl
ass std::allocator<char> >::compare(char const *)const " (__imp_?compare@?$basi
c_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@QBEHPBD@Z) referenced in
 function "bool __cdecl std::operator==<char,struct std::char_traits<char>,clas
s std::allocator<char> >(class std::basic_string<char,struct std::char_traits<c
har>,class std::allocator<char> > const &,char const *)" (??$?8DU?$char_traits@
D@std@@V?$allocator@D@1@@std@@YA_NABV?$basic_string@DU?$char_traits@D@std@@V?$a
llocator@D@2@@0@PBD@Z)

就解釋而言,指的是標准運算符。 (沒有為==引用字符串的運算符重載)

順便說一句,代碼本身不包含“ std::basic_string ”。 閱讀了相應的msdn文章,但此問題尚未解決。

對於其他代碼,已經考慮了“常規”問題,例如"C"修飾符修改。

任何提示如何應對?

編輯:第一次使用Visual Studio 2013打開項目時,顯示了一種轉換對話框。 我同意,但是它影響了VC ++目錄。 將帶有ClearCase的項目文件與以前的版本進行比較時,可以看到該文件。 UndoCheckout(通過ClearCase)應用了舊狀態。 現在可以了。

您的鏈接器需要從相關的lib文件中獲取更新的MSVC std庫,並且在遷移項目時應使用它。 查看“項目屬性”->“配置屬性”->“鏈接器”->“輸入”,並確保將“忽略所有默認庫”設置為“否”

第一次使用Visual Studio 2013打開項目時,將顯示一種轉換對話框。 我同意,但是它影響了VC ++目錄。 將帶有ClearCase的項目文件與先前版本進行比較時,可以看到該文件。 UndoCheckout(通過ClearCase)應用了舊狀態。 現在可以了。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM