Eigentlich funktioniert das..
Code:
HMODULE gdiplib() {
static HMODULE hGdip;
if (hGdip == 0) { hGdip = LoadLibrary(L"GDIPLUS"); }
return hGdip;
}
aber wenn ich diese Funktion aufrufe um einen Font zu erstellen.
Code:
GdipCreateFont(fontfam, (float)UseSize, 0, 2, TempFont);
Code:
long GdipCreateFont(IN LONG_PTR fontFamily, IN float emSize, IN long style, IN long
unit, OUT LONG_PTR &font) {
long nRet = -1; // Error
font = 0;
HMODULE hModule = gdiplib();
if (hModule) {
long_proc(LONG_PTR, float, long, long, LONG_PTR*);
static zProc hProc;
if (hProc == 0) { hProc = (zProc)GetProcAddress(hModule, "GdipCreateFont"); }
if (hProc) { nRet = hProc(fontFamily, emSize, style,
unit, &font); }
}
return nRet;
}
ist TempFont immer 0 weil das hModule den wert 0xfefefefe zurück gibt.
Zitat:
Vom Speicher kann nicht gelesen werden..
Ich finde den Fehler wieder mal nicht warum das fehl schlägt.
Warum gehen mir ständig die Handles verloren.
Unter Delphi habe ich mit solchen Problemen nicht zu kämpfen.
gruss