fontconfig не находит шрифты

Я пытаюсь заставить мою программу C ++ обнаруживать установленные шрифты на моем компьютере с Win32. Я попробовал fontconfig, взяв библиотеку из комплекта GTK +.

Я использую следующий тестовый код:

#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 ...

[/ NOEDIT]

К сожалению, это тестовое приложение печатает только:

Всего шрифтов: 0

Я знаю, что на моей машине установлены шрифты, и я знаю, что Gimp2.0 обнаруживает их, поэтому в моем тестовом коде должно быть что-то не так. У кого-нибудь есть идеи?

Кроме связывания fontconfig-1.dll, я больше ничего не делал. Я не создавал никаких конфигурационных файлов или чего-либо еще, потому что я нигде не мог прочитать о необходимости сделать это.

Я открыт для ваших предложений, спасибо!

4

Решение

Вместо:

FcConfig *config = FcInitLoadConfigAndFonts ();

Пытаться:

FcConfig *config = FcConfigCreate();
FcConfigAppFontAddDir(config, (const FcChar8 *)"C:\\Windows\\Fonts");

(это ленивая версия, вы должны адаптировать ее, чтобы выключить GetWindowsDirectory…)

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]