Mehrere MFC dialogbased Projekte in einer Solution



  • Ist es irgendwie möglich mehrere dialogbased Projekte in einer Solution zusammen zufassen?

    Als ich es versucht habe bekam ich nur nen lnk2019-Error:
    unresolved external symbol "public: __thiscall C2ndProjectDlg::C2ndProjectDlg(class CWnd *)" (??0C2ndProjectDlg@@QAE@PAVCWnd@@@Z) referenced in function "public: __thiscall C1stProjectDlg::C1stProjectDlg(class CWnd *)" (??0C1stProjectDlg@@QAE@PAVCWnd@@@Z)

    Was ich bisher gemacht habe:

    #include "2ndProjectDlg.h" //in 1stProjectDlg.h  
    2ndProjectDlg second; //in 1stProjectDlg.h 
    
    void C1stProjectDlg::OnBnClickedButton1() //in 1stProjectDlg.cpp
    {
    second.DoModal();
    }   
    

    Und ja ich weiss, dass ich kein neues Projekt brauche um ein neues Dialog-Fenster zubekommen, da es sich aber um ein Schul-Projekt handelt an dem mehrere Leute arbeiten, wollte ich die Projekte über ein Hauptdialog aufrufen.



  • Du musst auch gegen das andere Projekt linken.



  • Okay, aber da ich sowas noch nicht gemacht habe, weiss ich leider nicht was da genau zu tun ist. Gibt es dafür ein Guide/Tutorial zum durchlesen/angucken?



  • 100% sicher bin ich mir grad nicht, ob VS hier nicht eine Abkürzung bietet, sowas wie Verweis auf Projekt hinzufügen (ich benutze üblicherweise ein Buildsystem oder machs komplett von Hand).
    Aber wenn du´s von Hand machen willst, gehst du in die Eigenschaften von dem Projekt, Linker, Input und fügst die lib von dem zweiten Projekt hinzu. Wenn z.B. Projekt1 von Projekt2 abhängt, wird die lib üblicherweise Projekt2.lib heißen.

    Da gibts bestimmt so paar Millionen Tutorials.


  • |  Mod

    Ich habe Dir bereits auf Stackoverflow geantwortet.
    Wenn Du Code über einen Header in Dein Projekt reinziehst, musst Du auch die CPP Datei hinzufügen.

    Dein Linker beschwert sich über eine fehlende Definition einer Funktion und zwar eines Konstruktors.

    Werde Dir klar, welche Rollen. Header (.h), Source (.cpp) und die Module im Linker spielen.


Anmelden zum Antworten