none
Klassen einbinden mit Visual C++ 2008 RRS feed

  • Frage

  • <!-- @page { size: 21cm 29.7cm; margin: 2cm } P { margin-bottom: 0.21cm } -->

    Hallo,

     

    ich habe ein kleines Problem mit Visual C++ 2008.

    Habe die ganze Zeit mit dem Studio 6 gearbeitet und bin jetzt auf

    die Express Version 2008 gewechselt.

    Nur habe ich da so meine Probleme mit den einbinden der Klassen.

     

    Ich habe eine kleine Win Anwendung erstellt der das Codegerüst wie unten erzeugte:

     

     

    class_test.cpp

    -----------------------------------------------------------------------------------------------------

    // class_test.cpp: Hauptprojektdatei.

     

    #include "stdafx.h"

    #include "Form1.h"

     

    using namespace class_test;

     

    [STAThreadAttribute]

    int main( array <System::String ^> ^args)

    {

    // Aktivieren visueller Effekte von Windows XP, bevor Steuerelemente erstellt werden

    Application::EnableVisualStyles();

    Application::SetCompatibleTextRenderingDefault( false );

     

    // Hauptfenster erstellen und ausführen

    Application::Run( gcnew Form1());

    return 0;

    }

    -------------------------------------------------------------------------------------------------------

    und Form1.h

     

    ------------------------------------------------------------------------------------------------

    #pragma once

     

    #include "up1.h" // Hier habe ich meine Testklasse up1 eingebunden

     

    namespace class_test {

     

    using namespace System;

    using namespace System::ComponentModel;

    using namespace System::Collections;

    using namespace System::Windows::Forms;

    using namespace System::Data;

    using namespace System::Drawing;

     

    class test : public up1{}; // Dieses hab ich aus einem Buch

     

    test neuer_name; // Jetzt wie früher die Klasse zuweisen

    /// <summary>

    /// Zusammenfassung für Form1

    ///

    /// </summary>

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

    {

    public :

    Form1( void )

    {

    InitializeComponent();

    //

    //TODO: Konstruktorcode hier hinzufügen.

    //

    }

     

    protected :

    /// <summary>

    /// Verwendete Ressourcen bereinigen.

    /// </summary>

    ~Form1()

    {

    if (components)

    {

    delete components;

    }

    }

     

    private :

    /// <summary>

    /// Erforderliche Designervariable.

    /// </summary>

    System::ComponentModel::Container ^components;

     

    #pragma region Windows Form Designer generated code

    /// <summary>

    /// Erforderliche Methode für die Designerunterstützung.

    /// Der Inhalt der Methode darf nicht mit dem Code-Editor geändert werden.

    /// </summary>

    void InitializeComponent( void )

    {

    this ->SuspendLayout();

    //

    // Form1

    //

    this ->AutoScaleDimensions = System::Drawing::SizeF(6, 13);

    this ->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;

    this ->ClientSize = System::Drawing::Size(292, 266);

    this ->Name = L "Form1" ;

    this ->Text = L "Form1" ;

    this ->Load += gcnew System::EventHandler( this , &Form1::Form1_Load);

    this ->ResumeLayout( false );

     

    }

    #pragma endregion

     

     

    private : System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e)

    {

    neuer_name.a=0; // Zugriff auf Variable meiner Klasse

    }

    };

    }

    ------------------------------------------------------------------------------------------------------

     

    Und so sieht meine Klasse aus die ich eingebunden habe:

     

    #pragma once

     

    class up1

    {

    public :

    int a;

    int b;

    //System::String^ inhalt; // Wenn ich dieses Einbinde bekomme ich Error !!!!

     

    up1( void )

    {

    }

     

    ~up1( void )

    {

    }

    };

     

     

    Das ganze geht jetzt auch nur wenn ich versuche ein String^ zu definieren meine

    Klasse up1 dann bekomme ich immer ein Error. Mit Ints, floats Funktioniert es ohne Probleme.

     

    Ich versteh das ganze einfach nicht. Wenn mir jemand helfen könnte ????

     

     

    Mit freundlichen Grüßen

    Sepentis

    Dienstag, 23. Juni 2009 14:50

Antworten

Alle Antworten

  • Ich verstehe Dein Frage nicht ganz.
    Was bekommst Du, an welcher Stelle, wann für eine Vermeldung?
    Könntest Du für den Code, einen Codeblock anlegen. Dann wäre das gaze sicherlich einfacher u lesen.

    Martin Richter -- MVP for VC++ [Germany] -- http://blog.m-ri.de
    Mittwoch, 24. Juni 2009 06:55
  • Benenne "class up1 " nach "ref class up1" um...
    Jochen Kalmbach (MVP VC++)
    • Als Antwort vorgeschlagen Jochen Kalmbach Donnerstag, 25. Juni 2009 15:32
    • Nicht als Antwort vorgeschlagen Martin Richter Dienstag, 30. Juni 2009 11:53
    • Als Antwort vorgeschlagen Martin Richter Dienstag, 30. Juni 2009 11:53
    • Als Antwort markiert Martin Richter Dienstag, 30. Juni 2009 11:57
    Mittwoch, 24. Juni 2009 12:52