我试图让我的 C++ 程序检测我的 Win32 机器上安装的字体。我通过从 GTK+ 包中获取库来尝试 fontconfig。
我使用以下测试代码:
#include<fontconfig.h>
FcBool success = FcInit ();
if ( !success ) {
return false;
}
FcConfig *config = FcInitLoadConfigAndFonts ();
if(!config) {
return false;
}
FcChar8 *s, *file;
FcPattern *p = FcPatternCreate();
FcObjectSet *os = FcObjectSetBuild (FC_FAMILY,NULL);
FcFontSet *fs = FcFontList(config, p, os);
LOG("Total fonts: %d\n", fs->nfont);
for (int i=0; fs && i < fs->nfont; i++) {
FcPattern *font = fs->fonts[i];
s = FcNameUnparse(font);
LOG("Font: %s\n", s);
free(s);
if (FcPatternGetString(font, FC_FILE, 0, &file) == FcResultMatch) {
LOG("Filename: %s\n", file);
}
}
// destroy objects here ...
不幸的是,这个测试应用程序只打印:
总字体:0
我知道我的机器上安装了字体,并且我知道 Gimp2.0 检测到它们,所以我的测试代码一定有问题。有人有什么主意吗?
除了链接 fontconfig-1.dll,我什么也没做。我没有创建任何配置文件或任何东西,因为我无法阅读任何关于必须这样做的信息。
我愿意接受你的建议,谢谢!