Einzelnen Beitrag anzeigen

EWeiss
(Gast)

n/a Beiträge
 
#1

Rückgabe von hModul ist fehlerhaft

  Alt 21. Aug 2017, 16:41
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

Geändert von EWeiss (11. Jul 2019 um 15:48 Uhr)
  Mit Zitat antworten Zitat