Avatar billede brhino Nybegynder
25. november 2007 - 23:21 Der er 6 kommentarer

Vrøvl med InitCommonControlsEx

Hej med jer

Jeg er i gang med at lære C++ og i den forbindelse vil jeg lave en dialogbox. Derfor sad jeg og kigged på MSDN og fandt ud af at InitCommonControls er forældet og at man i stedet skal bruge InitCommonControlsEx. Jeg har så prøvet at compile lidt kode og får denne fejl : "error LNK2001: unresolved external symbol __imp__InitCommonControlsEx@4"

Her en min kildekode:

#include <windows.h>
#include <commctrl.h>

class MyFirstClass
{
private:
    HINSTANCE  hInstance;
    INITCOMMONCONTROLSEX lpInitCtrls;

public:
    MyFirstClass(){}
    ~MyFirstClass(){}
    void go()
    {   
        hInstance = GetModuleHandleA(NULL);
        lpInitCtrls.dwSize = sizeof(lpInitCtrls);
        lpInitCtrls.dwICC = ICC_PROGRESS_CLASS;
        if (InitCommonControlsEx(&lpInitCtrls))
        {
            // Her skal laves sjov
        }
    }             
};

Hva gør jeg forkert ?? Er det fordi jeg gør det i en klasse ??
Avatar billede bertelbrander Praktikant
26. november 2007 - 01:00 #1
Du skal linke med comctl32.lib
InitCommonControls er ikke forældet, ofte er det tilstrækkeligt at bruge den, ved avancerede ting skal du bruge InitCommonControlsEx.
Du skal også linke med comctl32.lib for at bruge InitCommonControls.
Det har ikke noget at gøre med at det sker i en class
Avatar billede brhino Nybegynder
26. november 2007 - 11:06 #2
Hej Berthel

Nu bruger jeg VS 2005 Express som IDE og deri her jeg under VC++ Directories sat Library files til at søge under blandt andet "C:\Programmer\Microsoft Platform SDK for Windows Server 2003 R2\Lib" hvor ComCtrl32.lib ligger. Skulle den så ikke linke dette LIB automatisk eller ???
Avatar billede bertelbrander Praktikant
26. november 2007 - 19:31 #3
Det er ikke nok at fortælle den hvilke mapper den skal kikke i, du skal også fortælle hvilke filer i mappen den skal linke med.
Avatar billede brhino Nybegynder
27. november 2007 - 17:08 #4
Tak Berthel... Smid lige et svar så får du pointene !!! Ved du forresten om der er en nemmere måde at inkludere dem i linker kommandolinien end at skulle editere corewin_express.vsprops ??? For eksempel via VS 2005 dialog box ?? Kan ikke forestille mig at man skal editere den fil hver gang
Avatar billede bertelbrander Praktikant
27. november 2007 - 20:37 #5
Du burde kunne angive det under:
Project -> Properties (Alt + F7) -> Linker -> Input -> Additional Dependencies

Hvis du lover at skrive mit navn uden 'h' må du gerne beholde pointene.
Avatar billede brhino Nybegynder
28. november 2007 - 14:01 #6
Hehe ... Jamen det skal jeg så gøre ... Tak for hjælpen !!!
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester