DirectX9 无法解析的外部符号D3DXCreateFontW

项目场景:

在《逐梦旅程 WINDOWS游戏编程之从零开始》第11章示例程序D3Ddemo2,调用DirectX9的打印文字接口
操作系统:win10 64位


问题描述:

调用D3DXCreateFont()报 “无法解析的外部符号D3DXCreateFontW”

#include 
#include 
#pragma comment(lib,"winmm.lib")
#pragma comment(lib,"d3d9.lib")
#pragma comment(lib,"d3dx9.lib")

//---------------------【Object_Init()函数】---------
// 描述:渲染资源初始化函数,在此函数中进行要被渲染的物体的资源的初始化
//---------------------------------------------------
HRESULT Objects_Init(HWND hwnd)
{
	//创建字体
	if (FAILED(D3DXCreateFont(g_pd3dDevice, 36, 0, 0, 1, false, DEFAULT_CHARSET, OUT_DEFAULT_PRECIS, DEFAULT_QUALITY, 0, _T("微软雅黑"), &g_pFont)))
		return E_FAIL;
	srand(timeGetTime());

	return S_OK;
}

尝试:

1.当前头文件和链接库,可以转到D3DXCreateFont()的定义,在"d3dx9core.h":
#ifdef UNICODE
#define D3DXCreateFont D3DXCreateFontW
#else
#define D3DXCreateFont D3DXCreateFontA
#endif
修改成"#define D3DXCreateFont D3DXCreateFont别的符号",报"无法解析的外部符号D3DXCreateFont别的符号"

2.查看sdk(或visualstudio在线文档https://docs.microsoft.com/en-us/)的windows_graphics.chm(位置在directX安装路径\Microsoft DirectX SDK (June 2010)\Documentation\DirectX9\windows_graphics.chm):
D3DXCreateFont Function
Requirements
Header
D3dx9core.h
Library
D3dx9.lib
在之前已经运行成功的D3Ddemo1,调用D3DXCreateFont(),vs2020无法识别符号,加#include和#pragma comment(lib,“d3dx9.lib”)后,可以识别符号,但还是报"无法解析的外部符号D3DXCreateFontW"

3.安装DXSDK_Feb10版本的DirectX9,在属性页设置了包含目录,库目录和链接器,还是报一样的错

4.属性页修改库目录是64位的目录后,问题解决


解决方案:

右键项目名-属性 打开项目属性页
vc++目录-库目录由
directX安装路径\Microsoft DirectX SDK (June 2010)\Lib\x86
改为
directX安装路径\Microsoft DirectX SDK (June 2010)\Lib\x64
问题解决

你可能感兴趣的:(c++)