correlati ai post precedenti, questo sembra essere un modo affidabile:
1) Leggere l'elenco dei caratteri di Windows registrati da HKEY_LOCAL_MACHINE \ Software \ Microsoft \ Windows NT \ CurrentVersion \ Fonts \ Qui si ottengono i nomi dei file e i percorsi dei file alternativi. I nomi dei caratteri non sono utili in quanto possono cambiare con le impostazioni locali dell'utente.
2) Caricare i file TrueType (.ttf, .ttc, .otf): Utilizzare FreeType https://www.freetype.org/). Basta inizializzare la libreria freetype e caricare la faccia con FT_New_Face (libreria, percorso, 0, & faccia).
3) Ottenere il nome della famiglia di font utilizzando FreeType. Utilizzare FT_Get_Sfnt_Name_Count() e FT_Get_Sfnt_Name() per ottenere la tabella di stringhe. È necessario verificare se la codifica è Ansi, UTF16 o altro, poiché alcune stringhe saranno in più lingue e codifiche diverse.
4) Ottenere le proprietà TrueType OS2. Utilizzare (TT_OS2 *) FT_Get_Sfnt_Table (face, ft_sfnt_os2) per ottenere la struttura OS2. Interpretare la struttura utilizzando documenti come https://www.microsoft.com/typography/otspec/os2.htm#fc
5) Ora sono disponibili il percorso del file di font, il nome della famiglia, le proprietà di stile e altre informazioni. Crea un elenco di questi e la funzione per cercare un file basato sulla famiglia e lo stile dei font.
Se si dispone dell'handle HFONT del font, è possibile provare la mia [soluzione proposta] (http://stackoverflow.com/questions/16769758/get-a-font-filename-based-on-the-font- gestire-HFONT). Non volevo aggiungere la risposta qui, perché la domanda non è chiara se hai un handle per il carattere o meno. –