GDI-Funktion GradientFill() löst 'unresolved external bla.." aus...



  • Hallo.

    Das Aufrufen der GDI-Funktion GradientFill() führt zu einem "unresolved external 'GradientFill' in soundso.cpp" und verhindert das Kompilieren.

    Der Aufruf erfolgt folgenderweise:

    TRIVERTEX        vert[2] ;
    GRADIENT_RECT    gRect;
    vert[0].x      = ss.left;
    vert[0].y      = ss.top;
    vert[0].Red    = GetRValue(ss.bgcolor); 
    vert[0].Green  = GetGValue(ss.bgcolor);
    vert[0].Blue   = GetBValue(ss.bgcolor);
    vert[0].Alpha  = 0;
    
    vert[1].x      = ss.left+ss.width;
    vert[1].y      = ss.top+ss.height; 
    vert[1].Red    = 0x0000;
    vert[1].Green  = 0x0000;
    vert[1].Blue   = 0xff00;
    vert[1].Alpha  = 0x0000;
    
    gRect.UpperLeft  = 0;
    gRect.LowerRight = 1;
    GradientFill(hdc,vert,2,&gRect,1,GRADIENT_FILL_RECT_V);
    

    Meine Suche in Google hat nicht viel geholfen. Überzeugt euch. Google gibt wenig über diese Funktion her. Die MSDN Seite hilft garnicht, da ich den Code ja fast 1 zu 1 aus der MSDN kopiert habe.

    Aus Erfahrung weis ich dass ein unresolved external bla-problem i.d.R. dann auftritt, wenn man die Funktionsargumente falsch eingibt. In meinem Beispiel erkenne ich leider nicht wo der Haken ist.
    Auch habe ich wegen der Beispiele im Web das Gefühl, man muss erst mal ne DLL laden. Ist das richtig? Alle der wenigen Beispiele im Internet, die ich fand binden eine DLL ein.

    Kennst sich jemand mit dieser Funktion aus?

    Gruß Tolga.



  • Also im Platform SDK scheint ne *.lib für die msimg32.dll zu existieren, ob man die lib verwenden kann/sollte darüber schweigt das Platform SDK ja leider...



  • Kompilierst du C oder C++ ?

    Auf jeden Fall musst du die richtige Library linken für die Funktion.
    Die DLL lädt er dann schon selbst.



  • SeppSchrot schrieb:

    Kompilierst du C oder C++ ?

    Auf jeden Fall musst du die richtige Library linken für die Funktion.
    Die DLL lädt er dann schon selbst.

    Hallo.

    Ich kompiliere C++ / Borland 5.5
    Muss ich mir dafür die plattform sdk downloaden?

    MfG.



  • Das Platform SDK lohnt sich allein schon wegen der Doku 👍



  • Tolga: Ich glaube die Header und Lib-Dateien aus dem Platform SDK funktionieren nur bei Microsoft Compilern.



  • Aber da du ja nur einen Linkerfehler bekommst heißt das ja das GradientFill schon im Header bekannt gemacht wurde. Dann ist es doch höchstwahrscheinlich auch in der msimg32 library vorhanden.


Log in to reply