gpt4 book ai didi

c++ - 尝试从资源加载字体时 FindResource 返回 NULL

转载 作者:太空狗 更新时间:2023-10-29 20:34:45 24 4
gpt4 key购买 nike

我正在尝试从我的资源中加载字体。这是我使用的调用,它当前返回 NULL,因此失败:

HRSRC rsrcData = FindResource(NULL, MAKEINTRESOURCE(IDF_ROBOTBLACK), L"FONT");

我将字体资源添加到我的 Resource.rc 文件中,该文件现在列出了以下内容:

/////////////////////////////////////////////////////////////////////////////
//
// Font
//

IDF_ROBOTBLACK FONT "Resources\\Fonts\\Roboto\\Roboto-Black.ttf"

此外,这是我的 Resource.h 的样子:

#define IDF_ROBOTBLACK                  108

据我所知,这应该是整个过程的全部。

我已经成功地加载了另一种资源格式“PNG”,它也作为一种新的自定义资源类型添加,遵循相同的过程,只是在到期时将“FONT”替换为“PNG”。

然而,与我的“PNG”加载方法相比,“FONT”从未被找到。 FindResource 返回 NULL,无论发生什么。

GetLastError()返回的错误码是1813。

我担心的是 .ttf 根本不受支持。我以前在我的解决方案资源中添加了各种格式,例如 .exe 和 .png、.jpg,但是在添加资源时文件选择器中甚至没有建议 .ttf。

它只是不应该以这种方式存储吗?

最佳答案

FONTstandard resource type ,与 PNG 不同。因此,您必须使用 RT_FONT 而不是 L"FONT"

资源声明可以保持为:

IDF_ROBOTBLACK FONT "filename.ttf"

资源必须位于如下位置:

FindResource(NULL, MAKEINTRESOURCE(IDF_ROBOTBLACK), RT_FONT); 

或者,您可以使用:

IDF_ROBOTBLACK xfont "filename.ttf"

FindResource(NULL, MAKEINTRESOURCE(IDF_ROBOTBLACK), L"xfont"); 

这是可行的,因为 xfont 不是标准资源(与 PNG 相同)。

或者,您始终可以使用 RCDATART_RCDATA

关于c++ - 尝试从资源加载字体时 FindResource 返回 NULL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46473835/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com