Form aufrufen unter C++ (Visual Studio 2005)



  • Hallo,

    hab schon im Forum gesucht doch leider nichts passendes für mein Problem gefunden. Bin Anfänger in Grafikprogrammierung unter C++. Ich habe mir eine Form per Drag&Drop im Visual Studio 2005 erstellt und habe nun eine Form1.h (auch .cpp, /* wobei hier nur der Header eingebunden ist */) und eine Form1.resx.

    Meine Frage: wie kann ich diese Form aufrufen, dass diese gleich erscheint sobald das Programm gestartet wird (oder eventuell per Button auf gerufen wird)?

    Als ich den Header in die Main eingebunden habe bekomme ich 16 Fehler, "error C2871: 'System' : a namespace with this name does not exist"

    Ich hoffe ihr könnt mir ein kleines Tutorial geben wie ich das Problem schnell und einfach beheben kann. Vielen Dank Seebi 😃 🙂 :p



  • Vermutlich fehlen dir die Referenzen auf die entsprechenden Assemblies.
    z.B. die befindet sich die System::Windows::Forms::Form Klasse im Assembly System.Windows.Forms.dll.

    http://msdn2.microsoft.com/en-us/library/system.windows.forms.form.aspx



  • folgendes ist eigentlich bei mir implementiert, das sind doch die referenzen?

    public ref class Form2 : public System::Windows::Forms::Form
    

    oder brauche ich auch noch oder nur diese:

    public ref class Form : public ContainerControl
    

    Wenn ja, wo muss ich dann folgende zeilen implementieren??

    [ComVisibleAttribute(true)]
    [ClassInterfaceAttribute(ClassInterfaceType::AutoDispatch)]
    

    wobei ich denke, dass es nicht ganz die Lösung zu meiner Frage ist... trotzdem danke!



  • Nein, das meine ich nicht mit referenzen.
    Ich meine Du musst bei den Projekt Einstellungen die Assemblies (=DLLs) referenzieren.

    Arbeitest Du mit VS205 od. VS2008?
    Wenn Du ein neues WinForms Projekt erstellst sollte schon alles korrekt und lauffähig sein.

    Simon



  • Kompilierst Du überhauüt mit /clr o.ä.??



  • simon.gysi schrieb:

    Arbeitest Du mit VS205 od. VS2008?
    Wenn Du ein neues WinForms Projekt erstellst sollte schon alles korrekt und lauffähig sein.

    Simon

    Hallo Simon,

    VS2005, und das ist eben mein problem, ich habe ein vorhandenes Projekt und will eine Form die ich erstellt habe, durch klicken eines Buttons oder durch z.b.

    // Create the main window and run it
    	Application::Run(gcnew Form2());
    

    quasi als Hauptmenü aufgerufen wird. Leider funktioniert das noch nicht so wie ich will.



  • Ok.
    Du musst unbedingt mit /clr kompilieren (bei den Kompiler Settings).
    Dann musst Du bei den Projekt Settings die Assembly Referenzen dazunehmen.
    (mscoree.dll, System.Windows.Forms.dll)

    Von welchem Typ ist denn das bestehende Projekt?



  • Typ des Projekts ist eine MFC Application.


Anmelden zum Antworten