如果第三方開發人員爲我們提供了使用VC++ 2005生成的.lib和/或.dll文件,它們是否可以在VC++ 2008中使用?如果他編譯2008 Pro,那麼我們運行2008 Standard/Express?使用以不同版本的Visual C++構建的庫/ DLL
我知道C++不像以前那樣容易移植,VC++運行時等等,但我想至少我們可以在更新版本的VC++中使用預先存在的庫/ DLL。
如果第三方開發人員爲我們提供了使用VC++ 2005生成的.lib和/或.dll文件,它們是否可以在VC++ 2008中使用?如果他編譯2008 Pro,那麼我們運行2008 Standard/Express?使用以不同版本的Visual C++構建的庫/ DLL
我知道C++不像以前那樣容易移植,VC++運行時等等,但我想至少我們可以在更新版本的VC++中使用預先存在的庫/ DLL。
2008年將無法使用2005 .libs - 它們鏈接到不同的運行時庫,而對象佈局和vtable結構可能略有不同。
您可能能夠在不同版本之間使用.dll,但它非常依賴於.dll的界面。如果它導出類或方法將類作爲參數或返回它們,那麼可能不會。
關於2008 Pro和2008標準版/ Express版問題,它們生成的代碼是100%兼容的。我已經開始Pro項目,然後繼續開發Express,反之亦然。
各種2008版本生成的二進制文件將兼容。所有這些變化都是IDE中可用的功能。
兼容的代碼!=兼容的二進制文件。問題是,如果您在Express中構建的庫可以與Pro中內置的應用程序鏈接,反之亦然。 – 2010-03-10 13:36:22
@John,我的回答可能措辭不妙。各種2008版本生成的二進制文件將兼容。所有這些變化都是IDE中可用的功能。 – ChrisF 2010-03-10 13:52:04
那麼我可以使用多年前寫的Windows系統DLL ......我可以看到你很可能在libs上是正確的。 – 2010-03-10 13:19:49
是的 - 正如我所說的,與.dll的兼容性取決於界面的種類。純C接口,例如win32 api .dlls,是安全的。 – 2010-03-10 13:43:11