Announcement

Collapse
No announcement yet.

DLL und Formansicht

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • DLL und Formansicht

    Ich habe eine SDI Anwendung jetzt will ich daß der User merere Dialoge bzw. Form in einem SDI abrufen.
    So weit so gut, aber jetzt möchte ich die Form nicht alle in einem Projekt haben sondern in verschiedenen.
    Kann man die als DLL machen und wenn ja dann natürlich wie was muß man da beachten ???

  • #2
    ja kann man eigentlich ohne Probleme.

    Schau mal im C++Builder Forum nach. Da wurde da schon öfters behandelt. (Sofern du diesen nutzt
    Christian

    Comment


    • #3
      Leider nicht ich muß es mit MFC und vs 6.0 machen ;-(
      Kennst Du da eine Möglichkeit ?????

      Comment


      • #4
        Tut mir leid, nutze den C++Builde
        Christian

        Comment


        • #5
          Das geht auch mit VC ohne Probleme! Es gibt dafür mehrere Möglichkeiten:<br>
          <br>
          <p><b>1. </b>Man erstellt eine erweiterte Mfc-dll, aus dieser kann man auch Klassen in seine Anwendung laden. Allerdings habe ich damit keine Erfahrung.</p>
          <p><b>2. </b>Man muss alle Views ( oder Dialoge ), die man verwenden will von einer Basisklasse ableiten. Diese Basisklasse muss aber die Anwendung bekannt sein. Also man muss den Header der Klasse als extern implemenetierte Klasse in das eigentliche Programm eincompilieren. Dann kann man in der Dll das Object erzeugen und gibt es an die Anwendung weiter, die es dann anzeigt.</p>
          <p><b>3. </b>Man kann die Klasse eines jeden Views ( Dialoges ) in das eigentliche Programm als extern implementierte Klassenbeschreibung eincompilieren und geht dann wie bei 2. vor</p>
          <br>
          mfg<br>
          Simon Rot

          Comment


          • #6
            Vielen Dank für schnelle Antwort,
            welche von die Drei Möglichkeiten die beste ist ???
            Hast Du vielleicht ein einfachen Beispiel dazu ??
            Wehre sehr Dankbar
            Grüß
            To

            Comment


            • #7
              Also ich versuche noch einmal, vielleicht habe ich mich jetzt besser ausgedruckt
              Ich erstelle eine MFC DLL da erstelle ich ein Dialog oder Formansicht ( CformView) und so rufe ich es ab in DLL:
              // Ruft Dialog auf
              extern "C" __declspec(dllexport) void GibDialog()
              {
              AFX_MANAGE_STATE(AfxGetStaticModuleState());
              TMDialog *pdialog = new TMDialog;
              pdialog->DoModal();//Create( IDD_DIALOGTM, pdialog);
              delete pdialog;
              }
              im SDI Anwendung in der View.h deklariere bzw rufe ich DLL so:
              extern "C" __declspec(dllimport) void GibDialog();
              und in der cpp so:
              void CGFSCORPUS1View::OnModuleGfsfido()
              {
              GibDialog();
              }
              ich kriege auch keinen Fehler plus nur bei ausführe bei der Methode DoModal(); bleibt er stehen ;-(

              Comment


              • #8
                Wie bereits gesagt, mit der Mfc Dll habe ich keine Erfahrung! Ich habe so etwas bisher nur mit normalen Dlls gemacht. Du musst Instanz des Views in deiner Dll erstellen, und einen Pointer ( oder Referenz ) an die Hauptanwendung geben, so dass diese nur eigentlich nur noch ShowModal() aufrufen muss!<br>
                <br>
                mfg<br>
                Simon Roth<br>
                <br>
                ps. wenn noch ein Beispiel hierzu habe kann ich es posten, muss erst danach suchen

                Comment


                • #9
                  Soweit ich weis die Methode ShowModal() von Borland kommt.
                  Hat hier jemand ein Beispiel oder weis einfach jemand wie man es mit MFC macht ??
                  Wehre dankbar für Hilf

                  Comment


                  • #10
                    Sorry, ich meinte in meinem letzten beitrag "DoModal" und nicht "ShowModal"!

                    Comment


                    • #11
                      Also mit dem Dialog und DoModal haut hin aber mit Create und CFormView nicht ;-(( so versuche ich es
                      AFX_MANAGE_STATE(AfxGetStaticModuleState());
                      Form form;
                      form.Create(IDD_Form,form);
                      und solchen Fehler kriege ich :

                      error C2660: 'Create' : Funktion akzeptiert keine 2 Parameter

                      HILLLLLLLLLLF

                      Comment


                      • #12
                        error C2660: 'Create' : Funktion akzeptiert keine 2 Parameter <br>
                        <br>
                        bedeutet, dass du eine falsche anzahl an Parametern übergeben hast! Wenn du Create in der klasse Form nicht überladen oder neu definiert hast stammt die funktion aus der Basisklasse von Form, und dann must du dort nachschauen, welche Parameter erwartet werden!<br>
                        <br>
                        mfg<br>
                        simo

                        Comment

                        Working...
                        X