Vraag & Antwoord

Programmeren

[C++] Dialogbox via DLL

3 antwoorden
  • Dag volk, Om een kort verhaal lang te maken. Ik ben bezig met een DLL die kan communiceren met een mySQL-database zoals van een phpBB forum. Alles gaat perfect en ik heb in de DLL een functie ingebouwd die de MySQL ODBC 3.51 Driver (myodbc3.dll) downloadt van mijn server als deze beschadigd of niet aanwezig is. Alle controles gaan goed en het wordt ook netjes gedownload als het niet aanwezig is op het systeem. Enkel ... Zo wil ik als "oogstreling" een form maken met een progressbar en verschillende labels om snelheid, gekopieerde kB en meer te laten zien (alle gegevens zijn voorhanden). Dit moet in de DLL (HWND e.d. worden door prog zelf meegegeven) zodat er later zowel met C++ als VB hiermee gewerkt kan worden en dan niet rekening gehouden hoeft te worden met downloadprogressdesign (nieuw woord) ... Nu heb ik het 1 en ander geprobeerd. Alleen mij lukt het niet om een Dialogbox aan te maken via de DLL (ik krijg het tenminste niet te zien). Dit is de dialoogproces voor download dialogbox: [code:1:7a50cb878a]LRESULT CALLBACK Download(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam) { switch (message) { case WM_INITDIALOG: return (TRUE); case WM_COMMAND: if (LOWORD(wParam) == IDOK) { EndDialog(hDlg, TRUE); return (TRUE); } break; } return (FALSE); }[/code:1:7a50cb878a]aanroep ervan: [code:1:7a50cb878a]DialogBox(hInst, "DOWNLOAD", hWnd, (DLGPROC)Download)[/code:1:7a50cb878a]Dialogbox is netjes aangemaakt en vormgegeven in een resource en heet "DOWNLOAD". hInst en hWnd zijn door het programma zelf gegeven. Als ik voor hWnd een NULL-waarde gebruik en zomaar een nieuwe instance graap via GetModuleHandle(NULL) werkt het ook niet. Ik zie niets. Volgende test geeft dus een fout (mislukt) aan: [code:1:7a50cb878a]if(FAILED(DialogBox(hInst, "DOWNLOAD", hWnd, (DLGPROC)Download))) MessageBox(hWnd, "mislukt", "error ...", MB_OK); else MessageBox(hWnd, "gelukt", "success ...", MB_OK);[/code:1:7a50cb878a]Iemand idee/antwoord? Als iemand handige links heeft waarvan hij/zij denkt dat het mij maar iets verder mee kan helpen dan ben ik erg dankbaar :)
  • [quote:20e2aed963="yoleri"]Als ik voor hWnd een NULL-waarde gebruik en zomaar een nieuwe instance graap via GetModuleHandle(NULL) werkt het ook niet. Ik zie niets.[/quote:20e2aed963] ModuleHandle != instance handle [quote:20e2aed963="yoleri"] Volgende test geeft dus een fout (mislukt) aan: [code:1:20e2aed963]if(FAILED(DialogBox(hInst, "DOWNLOAD", hWnd, (DLGPROC)Download))) MessageBox(hWnd, "mislukt", "error ...", MB_OK); else MessageBox(hWnd, "gelukt", "success ...", MB_OK);[/code:1:20e2aed963]Iemand idee/antwoord?[/quote:20e2aed963] Wat zegt GetLastError bij een fout?
  • GetLastError geeft ERROR_SUCCES aan (0).

Beantwoord deze vraag

Weet jij het antwoord op deze vraag? Registreer of meld je aan met je account

Dit is een gearchiveerde pagina. Antwoorden is niet meer mogelijk.