DirectX9 无法解析的外部符号D3DXCreateFontW

项目场景:

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


问题描述:

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

#include <d3d9.h>
#include <d3dx9.h>
#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<d3dx9core.h>和#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
问题解决

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值