链接器错误编译Visual Studio 2015中的DX10程序

时间:2015-06-18 04:49:15

标签: visual-studio visual-c++ linker directx

我正在尝试编译与DirectX 10一起使用的旧程序。所用库的完整列表:

#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):错误LNK2019:未解析的外部符号_vsnwprintf在函数&#34中引用; long __cdecl StringVPrintfWorkerW(unsigned short *,unsigned __int64,unsigned __int64 *,unsigned short const *,char *)& #34; (?StringVPrintfWorkerW @@ @ YAJPEAG_KPEA_KPEBGPEAD Z)

1 个答案:

答案 0 :(得分:1)

您使用的是哪个版本的legacy DirectX SDK?来自不同版本的Visual C ++编译器的静态库*通常不兼容,所以我猜你使用的是不再支持VS 2005的DirectX SDK - 我相信2010年2月的DXSDK是2010年6月的最后一个DXSDK支持VS 2008和VS 2010。

您也可以尝试构建自己的DXERR或迁移到较新版本的Visual C ++。

  • =导入库工作正常,这就是您在D3D10D3DX10DXGI方面遇到问题的原因。 DXGUID是一个静态库,但它只包含数据段内容,所以它往往不会遇到混合C运行时版本的问题。

另请参阅Where is the DirectX SDK (2013 Edition)?DirectX SDK Tools CatalogLiving without D3DXDirectX SDKs of a certain ageDirectX SDK Samples Catalog