Visual C++, Problem bei Projekt erstellung.



  • Hallo,
    fange gerade an mit Visual C++ zu arbeiten.
    Stelle mich gerade von Borland auf Visual C++ um.
    Ich weiss nicht ob das eine Einstellungssache ist oder was anderes - wenn ich ein Win32-Projekt ( Leeres Projekt ) erstelle, und ein Button habe wird dann der Code in Form1.h geschrieben.

    Aber wenn ich ein MFC-Anwendung auf Dialogfeld basierend erstelle wird der Code in Form1.cpp geschrieben.

    Muss ich was Einstellen und include.... kp.

    Dank im Voraus für die Infos.



  • Das ist normal 😉

    Im einen Fall erstellst Du ein .NET WinForms Projekt (und benötigst auch imer das -NET Framework). Du machst dann auch kein C/C++ mehr, sondern C++/CLI. Da C++/CLI primär als InterOp Sprache gedacht ist, wurde in den Designer nicht sehr viel "Energie" reingesteckt, deshalb landet der Code auch im Header.

    Im zweiten Fall erstellst Du eine native MFC Applikation, die (statisch gelinkt) auch ohne .NET oder sonstige Installationen laufen kann. Da es die MFC schon sehr lange gibt, ist auch der "Designer" "besser".



  • Ok, danke für die Info.
    Jetzt habe ich gesehen das im Projekttypen CLR gibt.
    da wir dauch in header geschrieben.
    Was kann ich überhaupt noch in cpp schreiben und wie baue ich die Verbindung zu header auf. Habe versucht class zu definieren und in cpp an zu sprechen.
    Schlägt alles fehl....



  • WAS schlägt fehl?
    Du kannst auch bei einem CLR-Projekt im Header nur die Deklaration machen und im cpp die Implementierung. Nur Du musst es eben von Hand machen.



  • Ja genau bei Deklaration und im cpp die Implementierung.
    ich weiss nicht wo ich in mein header mit mehr alx x zeilen Microso.. code was Deklarieren soll und wie ich das in cpp einbaue.
    Ist es möglich Bitte das ich ein Beispiel kriege.
    Ich merke mein Wissensstand reicht für MVC++ nicht aus.



  • Sorry... ich verstehe nicht was Du willst...

    Wenn Du einen Code der Form hast:

    ref class Form1 : public Form
    {
    public:
      void button1_Click(Object^ sender, EventArgs^ e)
      {
        this->Title = "Hello world";
      }
    };
    

    und willst diesen jetzt nach Deklaration und Implementierung trennen, dann mach in der h-Datei einfach die Implementierung weg und setze ein Semikolon dahinter:

    ref class Form1 : public Form
    {
    public:
      void button1_Click(Object^ sender, EventArgs^ e);
    };
    

    Und mach in die cpp-Datei die Implemetierung:

    void Form1::button1_Click(Object^ sender, EventArgs^ e)
      {
        this->Title = "Hello world";
      }
    

Anmelden zum Antworten