Benutzer mit den meisten Antworten
Globale Variablen verwenden

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.
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
-
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
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 -
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
-
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
-
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