簡體   English   中英

我的c ++項目適用於vc ++ 2008,但不適用於vc ++ 2010

[英]My c++ project works in vc++ 2008 but not in vc++ 2010

我有兩個vc ++ dll項目,它們將生成兩個dll。 一種

vector<vector<string>> 

對象將從一個dll傳遞到另一個dll。 這兩個項目都配置為多線程調試DLL。 兩者都可以在vc ++ 2008和vc ++ 2010上成功編譯。但是,只有從vc ++ 2008項目生成的dll才能工作。 dll將由在MSDEV 6.0版下編譯的另一個dll使用。 所以我的問題是為什么

vector<vector<string>>

對象無法在vc ++ 2010構建的dll之間傳遞? 謝謝:)

如果計划對DLL使用不同的編譯器版本以及使用它的代碼,則不能在DLL接口中使用STL類型。

向量和字符串的實現可能不同(在您的情況下它們似乎也是如此),您將遇到這樣的問題。

VC ++ 2010使用新的C ++ 11標准,該標准涉及對像vector這樣的模板容器進行大的更改(使用rvalue引用和移動語義,一開始)。

如果您正在共享這樣的庫,通常最安全的選擇是為所有內容制作簡單,無聊的標准C接口函數。 畢竟,這些工作幾乎無處不在。 然后可以以您認為合適的方式完成內部實施。

暫無
暫無

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

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