string arry global deklarieren



  • Hallo Zusammen,
    ich würde gerne die Varible datei Global deklarieren, leider scheitere ich hier kläglich, warum auch immer.
    Bin umsteiger von Visual Basic nach C++.

    using namespace System;
    	using namespace System::IO;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    
    void MeineLoesung_1(TextBox^ tb)
    {
    
    tb-> Clear();
    tb-> AppendText("hello world");
    
    }
    
    void Oeffnen_1(OpenFileDialog^ open)
    		{
    
    			Stream^ myStream;
    			//String^ datei;
    			//array<String^>^ datei;
    
    					  OpenFileDialog^ openFileDialog1 = gcnew OpenFileDialog;
    
    					  open->InitialDirectory = "c:\\";
    					  open->Multiselect = true;
    					  open->Filter = "txt files (*.txt)|*.txt";/*|All files (*.*)|*.*";*/
    					  open->FilterIndex = 2;
    					  open->RestoreDirectory = true;
    
    					  if ( open->ShowDialog() == System::Windows::Forms::DialogResult::OK )
    					  {
    						 if ( (myStream = open->OpenFile()) != nullptr )
    						 {
    							// Insert code to read the stream here.
    							array<String^>^ datei = open->FileNames;
    							myStream->Close();
    						 }
    					  }
    
    		}
    

    die Varible datei sollte nun für alle, welche die h-Datei einbinden zur Verfügung stehen.

    Sinnvolle Lösungen ?

    Danke vorab!

    Freddy



  • Freddy3108 schrieb:

    Bin umsteiger von Visual Basic nach C++.

    Du bist offenbar ein umsteiger von VB zu C++/CLI ( != C++ ).

    // edit: ... und mit MFC hat's auch nix zu tun.



  • Dieser Thread wurde von Moderator/in Martin Richter aus dem Forum MFC (Visual C++) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Dann mach es doch einfach.
    Wobei Du mit globalen Variablen sehr vorsichtig sein solltest, genauso mit C++/CLI, was kein C++ ist. Use C#.

    #pragma once
    
    namespace myproc {
    
    	using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    
    	/// <summary>
    	/// Zusammenfassung für Form1
    	///
    	/// Warnung: Wenn Sie den Namen dieser Klasse ändern, müssen Sie auch
    	///          die Ressourcendateiname-Eigenschaft für das Tool zur Kompilierung verwalteter Ressourcen ändern,
    	///          das allen RESX-Dateien zugewiesen ist, von denen diese Klasse abhängt.
    	///          Anderenfalls können die Designer nicht korrekt mit den lokalisierten Ressourcen
    	///          arbeiten, die diesem Formular zugewiesen sind.
    	/// </summary>
    	public ref class Form1 : public System::Windows::Forms::Form
    	{
    	public:
    
    	public: array<String^>^ datei;//<- <- <- Hier
    
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO: Konstruktorcode hier hinzufügen.
    			//
    		}
    


  • Doug_HH schrieb:

    Dann mach es doch einfach. Wobei Du mit globalen Variablen sehr vorsichtig sein solltest [...]

    namespace myproc {
    
    	public ref class Form1 : public System::Windows::Forms::Form
    	{
    	public:
    		array<String^>^ datei;//<- <- <- Hier
    	};
    // ...
    

    Wo ist hier was global?



  • Swordfish schrieb:

    Wo ist hier was global?

    Stimmt, hast recht.

    Das wäre eine Möglichkeit...

    namespace myproc {
    
    	using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    
    	ref class GlobalObjects 
    	{
    		public:
    		   static array<String^>^ datei;
    	};
    

Anmelden zum Antworten