Avatar billede mollevp Nybegynder
24. september 2004 - 15:58 Der er 19 kommentarer og
1 løsning

Dialog vises ikke

Hej.. Jeg har et lidt mystisk problem med mine dialogvinduer. Jeg har et win32 projekt og bruger API'et.
Problemt forekommer når jeg indsætter fx. en List Control, men også ved Tab Control, når disse elementer indsættes i min resurce-manager åbner programmet ikke dialogvinduet. Jeg skal måske lige sige at jeg bruger Microsoft Visual C++ .NET

Håber i kan hjælpe mig :)
Avatar billede mollevp Nybegynder
24. september 2004 - 15:59 #1
Desuden er det kodet i ANSI C..
Avatar billede bertelbrander Novice
24. september 2004 - 19:53 #2
Har du kaldt InitCommonControls() og/eller InitCommonControlsEx() ?

Har jeg svarret på dit spørgsmål én gang før i et andet fora?
Avatar billede mollevp Nybegynder
24. september 2004 - 21:52 #3
jeg har også posted i dk.edb.programmering.c.

Nej det har jeg ikke, vidste ikke det var nødvendigt.
Har lige prøvet men kan ikke lige få det til at fungere.. Får nogle linker fejl nu... Jeg giver det lige et skud mere..
Avatar billede bertelbrander Novice
24. september 2004 - 21:56 #4
Du skal inkludere commctrl.h og linke med comctl32.lib
Avatar billede mollevp Nybegynder
24. september 2004 - 23:08 #5
Som det ser ud lige nu inkluderer jeg commctrl.h og linker med comctl32.lib.
Men jeg får stadig en linker fejl. Tænkte på om det kunne skyldes at jeg bruger følgende simple opbygning.

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
    InitCommonControls();
    return DialogBox(hInstance, MAKEINTRESOURCE(IDD_vHoved), NULL, vHoved);
}
Avatar billede bertelbrander Novice
24. september 2004 - 23:31 #6
Hvilken linkerfejl?
Avatar billede mollevp Nybegynder
25. september 2004 - 14:18 #7
Har lige prøvet at oprette et helt nyt projekt.. men får stadig samme fejl.. InitCommonCtrl fatal error LNK1104: cannot open file 'C:\Documents.obj'
Avatar billede bertelbrander Novice
25. september 2004 - 14:48 #8
Jeg forstår ikke rigtigt den fejlbesked.

Har du en c:\documents.c eller c:\documents.cpp ?

Prøv at copy&paste hele beskeden.

Du skal tilføje comctl32.lib et sted i project options, et sted under linker -> librarys. Der står nogle .lib, du tilføjer comctl32.lib til denne liste.
Avatar billede mollevp Nybegynder
25. september 2004 - 14:53 #9
InitCommonCtrl fatal error LNK1104: cannot open file 'C:\Documents.obj'

Det er hvad den skriver til mig.. jeg forstår det hellere ikke.. Jeg har tilføjet comclt32.lib og commctrl.h
Avatar billede bertelbrander Novice
25. september 2004 - 14:58 #10
Hvor har du tilføjet commctrl.h ?
Avatar billede mollevp Nybegynder
25. september 2004 - 15:59 #11
#include <windows.h>

#include "resource2.h"
#include "CommCtrl.h"



BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam)
{
    switch(Message)
    {
        case WM_INITDIALOG:
           
        break;
        case WM_COMMAND:
           
        break;
        case WM_CLOSE:
            EndDialog(hwnd, 0);
        break;
        default:
            return FALSE;
    }
    return TRUE;
}

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
    LPSTR lpCmdLine, int nCmdShow)
{
    InitCommonControls();

    return DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DlgProc);
}
Avatar billede bertelbrander Novice
25. september 2004 - 16:23 #12
Det ser jo fint ud.
Hvad sker der hvis du opretter et tomt project med kun den kode, uden at modificere project setup?

Du burde få én linker fejl, som du burde kunne fjerne ved at tilføje comctl32.lib til link.

Måske er der en der har Visual C++ .net der har nogen ideer?
Avatar billede mollevp Nybegynder
26. september 2004 - 22:26 #13
Nu får jeg denne fejl... Efter at have oprettet et helt nyt projekt, uden at ændre nogle indstillinger..

test_igen error LNK2019: unresolved external symbol __imp__InitCommonControls@0 referenced in function _WinMain@16
Avatar billede bertelbrander Novice
26. september 2004 - 22:52 #14
Det er den fejl besked som jeg forventer at du vil få.
Du burde kunne løse problemet ved at tilføje comclt32.lib til linkeren, der bør være en liste af .lib-filer som den linker med, du tilføjer så din til enden.


Ellers har jeg ingen ideer :-(
Avatar billede segmose Nybegynder
27. september 2004 - 11:06 #15
skal
#include "CommCtrl.h"
være
#include <CommCtrl.h>
Avatar billede mollevp Nybegynder
27. september 2004 - 12:07 #16
Hep det virker... jeg indtasted stien til .lib filen, det skulle jeg nok ikke have gjort? Jeg indtastede bare comctl32.lib under additional dependencies.. Puff var linker-fejlen væk..

Skal man ikke angive den fulde sti til en lib-fil - det har jeg nemlig gjort før uden der har været problemer med det..
Bertel kan du ikke smide et svar - som tak for besværet :)

MVH Morten
Avatar billede mollevp Nybegynder
27. september 2004 - 12:08 #17
* før indtastede jeg stien til .lib filen
Avatar billede mollevp Nybegynder
27. september 2004 - 12:15 #18
Synes det er pænt mærkeligt.. Hvis jeg f.eks ikke skriver stien til mysql's lib fil så får man en linker fejl. Omvendt får jeg en fejl, hvis jeg skriver stien til comstl32.lib... Nå men det virker nu - så skidt :)
Avatar billede bertelbrander Novice
27. september 2004 - 19:28 #19
Måske har du visual C++ til at ligge i "c:\documents and settings\..." og mysql til at ligge i en sti uden mellemrum i ?

Du skal måske putte "" omkring lib's der ligger i stier med mellemrum i navnet. Det er ikke nødvendigt med sti til Visual's egne libs.

Jeg vil helst ikke have point.
Avatar billede mollevp Nybegynder
27. september 2004 - 20:51 #20
ahh.. så var der mening med galskaben :)
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