调用GetFontData返回GDI_ERROR,是什么原因啊?(附调用代码)

keeneyes 2007-01-12 10:36:05
CWnd * cwnd = AfxGetMainWnd();
CDC *PDC = cwnd->GetDC();
DWORD tag = MAKETABLENAME( 't','t','c','f');
DWORD size = PDC->GetFontData(tag, 0, NULL, 0);
if(size == GDI_ERROR)
unsigned long err = GetLastError();

窗口的字体换了好几种,TTF和TTC格式的字体都试过,size都是等于GDI_ERROR,
但GetLastError返回的错误码err为0。各位遇到过这种情况吗?应该怎么修改呢?
...全文
482 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
spofmy 2007-05-21
  • 打赏
  • 举报
回复
学习了
jacknes009 2007-05-21
  • 打赏
  • 举报
回复
study
zfyccpp 2007-04-03
  • 打赏
  • 举报
回复
我也遇到了,
我代码的原因是LOGFONT的CHARSET没有设置正确。
keeneyes 2007-01-12
  • 打赏
  • 举报
回复
to:jixingzhong(瞌睡虫·星辰)
难道是DWORD tag = MAKETABLENAME( 't','t','c','f');这句话有问题?
MAKETABLENAME宏的定义如下:
#define MAKETABLENAME(ch1, ch2, ch3, ch4) ((((DWORD)(ch4)) << 24) | (((DWORD)(ch3)) << 16) | (((DWORD)(ch2)) << 8) | ((DWORD)(ch1)))
jixingzhong 2007-01-12
  • 打赏
  • 举报
回复
GetLastError返回的错误码err为0

GetLastError returns 0 means that, the operation completed successfully.
jixingzhong 2007-01-12
  • 打赏
  • 举报
回复
the function returns the size of the buffer required for the font data specified in the dwTable parameter, while the 3rd parameter is NULL.
keeneyes 2007-01-12
  • 打赏
  • 举报
回复
没人知道吗?
内容概要:本文档为《ATS_Errata_1_0-11302007.pdf》,主要针对地址转换服务(Address Translation Services, ATS)规范的技术勘误与澄清,涵盖ATS功能在PCI Express架构中的实现细节。文档对关键术语、协议行为和数据包格式进行了修正和说明,包括ATS能力结构的位置、无效化请求与完成机制、TLP路由规则、UR(不支持请求)处理、翻译完成包的填充限制以及多TC环境下的完成合并规则等。此外,还明确了ATS扩展能力应位于扩展配置空间,并对字段编码、队列深度、最小转换单元(STU)等寄存器定义做出详细解释。; 适合人群:从事PCIe系统设计、设备驱动开发或硬件架构工作的工程师,具备一定高速接口协议背景的研发人员;特别是涉及I/O虚拟化(IOV)和地址转换硬件设计的技术专家。; 使用场景及目标:①帮助开发者正确实现ATS功能以确保兼容性和互操作性;②指导硬件与固件团队处理翻译请求、无效化协议及错误响应;③为符合PCIe Base Specification的系统集成提供规范依据; 阅读建议:此资源作为技术勘误文件,需结合PCI Express Base Specification及相关IOV标准对照阅读,重点关注各A类条目中的修正说明与实施注意事项,适用于调试ATS功能异常、验证配置空间结构或设计支持地址转换的终端设备。

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧