Fehler beim linken von uSkin.lib



  • die lib ist ja schon eingebunden.


  • Mod

    Scheinbar nicht. Sonst bekämst Du den Fehler nicht.
    Evtl. Was ist es für ein Pfad?
    Siehe evtl. AdditionalLibraryDirectories in den Linker Settings.

    Man kann die Lib-Datei auch in das Projket ziehen. Dann bindet der Linker sie automatisch ein.



  • kannst du das vielleicht mal bei dir ausprobieren, weill
    es funkz bei mir einfach nicht.
    uSkin gibts auf neemedia.com

    da muss noch irgend wo ein anderer fehler sein???...



  • Guckst Du mit dumpbin.exe /headers [sonstwas.lib] mal, ob alles, was du verwenden willst überhaupt von der lib exportiert wird?



  • Habs mit VS2010 unter XP versucht.

    Die Beispiele unter Samples/MFC benötigen

    #define _WIN32_WINNT 0x0500

    Weglassen geht nicht und alles andere führt zu

    \VC\atlmfc\include\afxcmn3.inl(20): error C2065: 'CCM_SETWINDOWTHEME': nichtdeklarierter Bezeichner

    Die lib (sowie die dll) war ursprünglich für VS2008 kompiliert.

    dumpbin sagt z.B. mit /HEADERS

    Version : 0
    Machine : 14C (x86)
    TimeDateStamp: 49141C85 Fri Nov 07 11:46:29 2008
    SizeOfData : 00000033
    DLL name : USkin.dll
    Symbol name : ?USkinSetWindowSkin@@YGHPAUHWND__@@PBD@Z (int stdcall USkinSe
    tWindowSkin(struct HWND
    *,char const *))
    Type : code
    Name type : ordinal
    Ordinal : 27

    oder mit /EXPORTS

    27 ?USkinSetWindowSkin@@YGHPAUHWND__@@PBD@Z (int stdcall USkinS
    etWindowSkin(struct HWND
    *,char const *))

    Die dazugehörige DLL sieht gut aus:

    27 25 00003170 USkinSetWindowSkin

    Der Linker mag die lib (angeblich) mit dem ..\.. Pfad nicht öffnen.

    Mit #pragma lässt sich die lib laden wenn man sie in den source-Ordner kopiert.
    Muss dann wohl doch am Pfad liegen.

    Alternativ, da die uskin.h und die dll gut aussehen, könnte man die dll auch mit LoadLibrary() selbst laden.



  • merano schrieb:

    Habs mit VS2010 unter XP versucht.

    Die Beispiele unter Samples/MFC benötigen

    #define _WIN32_WINNT 0x0500

    Weglassen geht nicht und alles andere führt zu

    \VC\atlmfc\include\afxcmn3.inl(20): error C2065: 'CCM_SETWINDOWTHEME': nichtdeklarierter Bezeichner

    0x500 ist die WINVersion von Windows 2000. Alles davor (Win95,98,ME,NT) wird von VS 2010 C++ als Target nicht mehr unterstützt.

    Vielleicht sollte der Thrreadstarter noch mal geflegt den Artikel auf
    http://www.codeproject.com/Articles/13946/Use-the-Free-USkin-Toolkit-to-Skin-your-Applicatio
    durchlesen und das Projekt neu aufsetzen.



  • hab ich schon alles gemacht, aber irgend wie funkz nichts
    von all dem???
    hat`s einer von euch zum laufen gebracht?



  • Gast123 schrieb:

    hab ich schon alles gemacht, aber irgend wie funkz nichts
    von all dem???
    hat`s einer von euch zum laufen gebracht?

    Ja klar. Es geht

    In stdafx.h sollte folgendes stehen:

    #define WINVER 0x0501 // Minimum Windows XP
    #define _WIN32_WINNT 0x0501 // Minimum Windows XP required
    #define _WIN32_IE _WIN32_IE_IE60 // IE 6.0 (0x0600)

    #include <commctrl.h>

    Siehe auch Doku zu CCM_SETWINDOWTHEME

    Ausserdem muss (natürlich) die dll im Ordner der .exe stehen und
    die skins werden hier erwartet

    ..\\Skins\\DiyGreen.msstyles

    Bei der Release Version also

    __USkin V3.0\USkinDemoSrc\Bin
    __USkin V3.0\USkinDemoSrc\Skins



  • Nachtrag:

    Beim Linker sollte unter "Zusätzliche Abhängigkeiten" sowohl unter
    "Debug" alsauch "Release" folgendes stehen:

    ..\..\..\lib\USkin.lib;%(AdditionalDependencies)



  • Die Beispiele unter samples\mfc
    funktionieren alle kompiliert mit VC2010 prof., wenn die Winversion >= 500 ist. Also die Anpassungen die merano beschrieben hat
    Da Du soviel "Info" preisgibst,
    - check wie merano empfohlen die Projekteigenschaften auf die
    include-Abhängigkeiten. Unbekannte Felder in den Projekteigenschaften
    beschreibt Dir die MSDN in dem Du das Feld markierst und dann rechts oben auf
    das Fragezeichen klickst.
    - vergewisser Dich das Deine IDE die nötige MFC-Unterstützung mit bringt.
    Mit VC2010 Express wird es nicht funktionieren.


Anmelden zum Antworten