Dialog ohne rc datei erzeugen?



  • Ich habe es nu geschaft nen Dialog anzuzeigen per API. Nun wollte ichs in ne dll packen, das problem ist da ichs net in C++ nutz(die dll) wollte ich fragen obs geht das ich den Dialog so Deklariere, sprich ihne rc datei. Denn die kann ich net laden, oder macht er das bei der dll automatisch?



  • die resourcen können in die dll rein. bei CreateDialog bzw. DialogBox einfach das Instancehandle der DLL angeben



  • Wie kriege ich dieses Handel, und macht er die .rc datei automatisch mit rein?
    hier mal der code mit dem ich in der dll den Dialog erzeuge:

    MYCOMMAND void Dialog()
    {
    
        if (DialogBox(NULL, MAKEINTRESOURCE(IDD_DIALOG1),
            NULL, (DLGPROC)InfoDlgFkt)==IDOK) 
        {} 
        else {MessageBox(NULL,"Kann Dialog net erzeugen","",MB_OK);
        }
    }
    LONG APIENTRY InfoDlgFkt(HWND hWnd, UINT message, UINT wParam, LONG lParam)
    {
    
       switch (message) {
       case WM_INITDIALOG:  // Initialisierung der Elemente
          break;
       case WM_COMMAND:
        switch(wParam) {
            case IDOK:
                EndDialog(hWnd, IDOK);
                return TRUE;
             case IDCANCEL:
                EndDialog(hWnd, IDCANCEL);
                return TRUE;
          } // switch COMMAND
       }
       return FALSE;
    }
    

    [ Dieser Beitrag wurde am 07.12.2002 um 01:02 Uhr von xyz44 editiert. ]



  • Also ich habe mir mal mit GetLastError den Fehlercode ausgeben lassen, kommt folgendes raus:
    1813 The specified resource type cannot be found in the image file.

    Nun weis ich net was ich mahcen soll?
    Muss ich vieleicht die DLG in die DLL packen, wenn ja wie. Ich habe die .rc Datei zu den Prjeckt Dateien hinzugefügt. Dachte das reicht.

    [ Dieser Beitrag wurde am 07.12.2002 um 03:20 Uhr von xyz44 editiert. ]



  • HINSTANCE hinstancedll = (HINSTANCE) LoadLibrary("test.dll");

    DialogBox(hinstancedll, ...

    bin mir da aber überhaupt ned sicher. 🙄



  • Also, wenn du einen Dialog ohne Resource erstellen willst, dann steht darüber was in der FAQ!



  • Hasbe nachgeschaut, konnte aber in der faqw net finden, kannst mir vieleicht den Tread geben?



  • Also, vielen dank ich habs hinbekommen. Ich hatte den HINSTANCE net rihctig übergeben. Hat dann mit der oben genannten funktion hingehaunen. Danke noch al an alle für ihre Geduld


Anmelden zum Antworten