提问人:Alfanan123 提问时间:11/3/2015 最后编辑:πάντα ῥεῖAlfanan123 更新时间:1/24/2016 访问量:1658
未解决的外部符号错误,C++ VS15 d3dx9 库
Unresolved External Symbol error, C++ VS15 d3dx9 Library
问:
由于某种原因,我遇到了一个“未解析的外部符号”错误,我只是不知道为什么..
它抱怨“__snprintf”、“__sprintf”和“__vsnprintf”,即使我什至没有使用它们。
编译器图片:
如您所见,我正在使用 d3dx9.lib 这些是我的包含和库:
#include <Windows.h>
#include <iostream>
#include <stdio.h>
#include "d3d9.h"
#include "d3dx9.h"
#pragma comment(lib, "d3d9.lib")
#pragma comment(lib, "d3dx9.lib")
我使用printf的唯一代码:
void v_DrawText(int X, int Y, D3DCOLOR Color, ID3DXFont *font, const char* sText, ...)
{
char sText_[1024] = "";
va_list ap;
if (!sText || *sText == '\0')
return;
va_start(ap, sText);
_snprintf_s(sText_, 1024, 1023, sText, ap);
va_end(ap);
RECT Position = { X, Y, X + 500, Y + 50 };
font->DrawText(NULL, sText_, -1, &Position, DT_LEFT | DT_WORDBREAK, Color);
}
我已经尝试过从地面重建解决方案,重新下载库,将其直接添加到链接器中。但不是。只是行不通。.
项目配置(根据要求):
答:
0赞
Chuck Walbourn
11/5/2015
#1
请记住,(和 、) 和 DirectX SDK 都已弃用。请参阅 MSDN。VS 2010 是 DirectX SDK 正式支持的最后一个版本(2010 年 6 月)。一般来说,导入库应该可以工作,但静态库很可能不起作用。D3DX9
D3DX10
D3DX11
D3DX9
请注意,DXERR.LIB 不适用于 VS 2015,因为 CRT 已更改。有关详细信息,请参阅此线程。
您仍在使用 2004 年夏季的 DirectX SDK 9.0b,该版本当时支持 VS .NET 2002 和 VS .NET 2003。如果仍需要使用旧版 D3DX9,请转到 DirectX SDK(2010 年 6 月)版本。请参阅此帖子。
此外,错误地配置了包含/库路径,以便将旧版 DirectX SDK 与 VS 2012 或更高版本附带的 Windows 8.x SDK 混合使用。请参阅 MSDN 上的说明,了解正确的路径顺序,这与当前路径顺序相反。
评论
%28
Program Files (x86)