none
Globale Variablen verwenden RRS feed

  • Frage

  • Hallo,

    ich habe in der Header-Datei Form1.h (Hauptfenster) eine Globale Variable (std::string filename = "E:\\Test\\Test.csv";)

    definiert:

    Form1.h:

    #include <string>

    std::string filename = "E:\\Test\\Test.csv";

    namespace CppCLRWinFormsProject {

    .....

    Wie kann ich diese Globale Variable in einer anderen Header-Datei (Form2.h) verwenden, bzw. wo muss ich Globale Variable deklarieren?

    Wenn ich die Globale Variable filename in der Form2.h verwende:

    #include <string>

    #include <fstream>

    #include <sstream>

    #include "Form1.h"

    namespace CppCLR_WinForms_GUI2 {

        using namespace System;
        using namespace System::ComponentModel;
        using namespace System::Collections;
        using namespace System::Windows::Forms;
        using namespace System::Data;
        using namespace System::Drawing;
        using namespace std;

    private: System::Void Testdaten_Load(System::Object^ sender, System::EventArgs^ e)
        {
          
            ifstream f(filename, std::ios_base::binary | std::ios_base::in);
            if (!f)
                tb_Status->AppendText("open error File");
            else
            {

             .......

    erhalte ich die Fehlermeldung: C2065 "filename": nicht deklarierter Bezeichner

    MfG

    Juergen B.

    Dienstag, 15. November 2022 15:42

Antworten

  • Hallo Jürgen,

    probier mal folgendes:

    Form1.cpp:

        extern std::string filename;

    Form2.cpp:

        std::string filename = "E:\\Test\\Test.csv";

    Gruß
    Heiko


    • Bearbeitet Heiko65456465 Dienstag, 15. November 2022 22:13
    • Als Antwort markiert jbaben Donnerstag, 17. November 2022 13:55
    Dienstag, 15. November 2022 21:51
  • Hallo,

    vielen Dank für Eure Antworten.

    Peter Fleischer:

    Das mit dem Namensraum ist mir bekannt, aber ich habe doch meine Variable ausserhalb von "namespace CppCLRWinFormsProject" definiert.

    Heiko:

    Ich habe den genannten Hinweis in mein Projekt verwendet, damit kann ich die Variable in der Form2.h ohne Fehlermeldung verwenden. Toll.

    MfG

    Juergen B.

    • Als Antwort markiert jbaben Mittwoch, 16. November 2022 13:35
    Mittwoch, 16. November 2022 13:35

Alle Antworten

  • Hi Jürgen,
    schau mal nach, in welchem Namensraum deine filename-Variable deklariert ist Um dann aus dem CppCLR_WinForms_GUI2 zuzugreifen musst du die Doppel-Doppelpunkt-Notation nutzen, also z.B.:

    CppCLRWinFormsProject::filename ...


    --
    Best Regards / Viele Grüße
    Peter Fleischer (former MVP for Developer Technologies)
    Homepage, Tipps, Tricks

    Dienstag, 15. November 2022 16:06
  • Hallo Jürgen,

    probier mal folgendes:

    Form1.cpp:

        extern std::string filename;

    Form2.cpp:

        std::string filename = "E:\\Test\\Test.csv";

    Gruß
    Heiko


    • Bearbeitet Heiko65456465 Dienstag, 15. November 2022 22:13
    • Als Antwort markiert jbaben Donnerstag, 17. November 2022 13:55
    Dienstag, 15. November 2022 21:51
  • Hallo,

    vielen Dank für Eure Antworten.

    Peter Fleischer:

    Das mit dem Namensraum ist mir bekannt, aber ich habe doch meine Variable ausserhalb von "namespace CppCLRWinFormsProject" definiert.

    Heiko:

    Ich habe den genannten Hinweis in mein Projekt verwendet, damit kann ich die Variable in der Form2.h ohne Fehlermeldung verwenden. Toll.

    MfG

    Juergen B.

    • Als Antwort markiert jbaben Mittwoch, 16. November 2022 13:35
    Mittwoch, 16. November 2022 13:35
  • Hallo Juergen,

    nicht daß ich darauf bestehen würde, aber wenn (m)eine Antwort die richtige ist oder hilfreich war, kannst du diese auch als Antwort markieren oder mit einem Klick auf den Pfeil aufwerten. Das macht es auch für spätere Leser einfacher.

    Gruß
    Heiko

    Mittwoch, 16. November 2022 15:22