2015-06-18 264 views
0

我想編譯舊程序,它支持DirectX使用作品庫10.完整列表編譯DX10程序:連接錯誤在Visual Studio 2015

#pragma comment(lib, "d3d10.lib") 
#pragma comment(lib, "d3dx10.lib") 
#pragma comment(lib, "dxgi.lib") 
#pragma comment(lib, "dxerr.lib") 
#pragma comment(lib, "dxguid.lib")  

鏈接錯誤:

dxerr.lib(dxerrw.obj) : error LNK2019: unresolved external symbol _vsnwprintf referenced in function "long __cdecl StringVPrintfWorkerW(unsigned short *,unsigned __int64,unsigned __int64 *,unsigned short const *,char *)" ([email protected]@[email protected])

+0

爲人們尋找更好的答案,看到這個重複的問題:http://stackoverflow.com/questions/31053670/unresolved-external-symbol -vsnprintf-in-dxerr-lib – leetNightshade

回答

1

哪個版本您使用的是legacy DirectX SDK的?來自不同版本的Visual C++編譯器的靜態庫*通常是不兼容的,所以我猜測您使用的是不再支持VS 2005的DirectX SDK - 我相信2010年2月的DXSDK是2010年6月發佈的最後一個DXSDK支持VS 2008和VS 2010.

您也可以嘗試構建自己的DXERR或轉移到較新版本的Visual C++。

  • =導入庫做工精細這就是爲什麼你不具有D3D10D3DX10,並DXGI問題。 DXGUID是一個靜態庫,但它只包含數據段內容,因此它不會遇到混合C運行時版本的問題。

又見Where is the DirectX SDK (2013 Edition)?DirectX SDK Tools CatalogLiving without D3DXDirectX SDKs of a certain ageDirectX SDK Samples Catalog

+0

2010年6月版本。我排除了dxerr.lib並且編譯了該項目。感謝您的dxerr更換。 –