Beipiel (aus Vis.Stud. in 21 T.) geht nicht
-
Hallo,
das Beispiel funktioniert nicht, wenn ich es genau so wie im Buch eingebe.
Listing 8.3: Die Funktion FillFontList
1: void CTextFontsDlg::FillFontList(void) 2: { 3: LOGFONT lf; 4: 5: lf.lfCharSet = DEFAULT_CHARSET; 6: // Alle Schriftarten festlegen 7: lf.lfFaceName[0] = '\0'; 8: // Muss DEFAULT_PITCH | FF_DONTCARE sein um alle anzuzeigen 9: // beide Werte sind aber als 0 definiert 10: lf.lfPitchAndFamily = 0; 11: // Listenfeld leeren 12: m_ctlFontList.ResetContent(); 13: // Gerätekontextvariable erzeugen 14: CClientDC dc (this); 15: // Schriftfamilien aufzählen 16: ::EnumFontFamiliesEx((HDC) dc, &lf, 17: (FONTENUMPROC) MyEnumFontProc, (LPARAM) this, 0); 18: }Zeile 16 und 17:
bekomme dann die Fehlermeldung:
error C2440: 'type cast' : cannot convert from 'overloaded-function' to 'FONTENUMPROC'obwohl ich das genauso wie im Buch übernommen habe?
-
Schau Dir mal die Callback an, so is die in der MSDN definiert
http://msdn.microsoft.com/en-us/library/ms534204(VS.85).aspx
Vielleicht stimmt da was net.
Gruß Matthias
-
ein gut gemeinter rat, wirf bitte dieses buch weg

-
@sothis_: wirf das Buch weg, wird achimos net weiter helfen, wenn Du ihm wenigstens eine Alternative aufgezeigt hättest, aber so is das doch etwas dünn, was du da ablässt
Gruß Matthias
-
CTecS schrieb:
@sothis_: wirf das Buch weg, wird achimos net weiter helfen, wenn Du ihm wenigstens eine Alternative aufgezeigt hättest, aber so is das doch etwas dünn, was du da ablässt
Gruß Matthias
ach, was du nicht sagst. du hast ihm doch schon einen hinweis gegeben. und wenn er sich da einliest, wird er bestimmt feststellen das der funktionszeiger MyEnumFontProc nicht den richtigen prototypen besitzt.
