Problem beim Einbinden von afx.h



  • Hallo zusammen,

    ich hoffe ich bin im richtigen Forum gelandet. Ich kann mein Problem selber nicht wirklich deuten, deswegen weiß ich nicht wo es hingehört.

    Ich programmiere mit Visual C++ 2008 und hab eine Windows Forms Anwendung erstellt. Das ganze klappt soweit ganz gut. Der Benutzer wählt einen Ordner aus und jetzt will ich alle Dateien in dem Ordner anzeigen lassen. Dafür hab ich etwas im Internet gesucht und mich an einem Beispiel gehalten, um das zu ralisieren. Das ganze soll mit CFileFind gemacht werden. Nun ist mein Problem, das man dafür auch einige StTrings usw. braucht und ich dafür die afx.h einbinden muss. Ich hab jetzt schon einiges probiert die einzubinden, aber er meckert immer rum. Leider weiß ich nicht wieso. Liegt das Problem daran das ich CString und CFindFile nutze? Gibt es für die beiden Sache aktuellere Varianten die ich nehmen muss? Ich hab zwar bei MSDN schon gesucht, aber da werde ich schier erschlagen von dem Umfang. Ich weiß nichtmal wo genau ich da suchen muss, ob bei .NET oder direkt bei C++ oder sonstwo. Jedenfalls hab ich dort ein Beispiel gefunden für .NET 3.5 und für dieses Beispiel braucht man auch die afx.h. Deswegen hab ich keinerlei Idee, warum ich die nicht einbinden kann. Für jede Hilfe wäre ich dankbar 🙂

    Hier mal der gesamte Code. Mit einem Button schließt man alles, der andere Button öffnet den ChooseFolder Dialog. Ansonsten gibts dazu nicht mehr zu sagen.

    #pragma once
    //#include "AFX.H"
    
    namespace ChooseFolderTest { 
    
    	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:
    		Form1(void)
    		{
    			InitializeComponent();
    			//
    			//TODO: Konstruktorcode hier hinzufügen.
    			//
    		}
    
    	protected:
    		/// <summary>
    		/// Verwendete Ressourcen bereinigen.
    		/// </summary>
    		~Form1()
    		{
    			if (components)
    			{
    				delete components;
    			}
    		}
    	private: System::Windows::Forms::Button^  button1;
    	private: System::Windows::Forms::Button^  button2;
    	private: System::Windows::Forms::FolderBrowserDialog^  folderBrowserDialog1;
    	private: System::Windows::Forms::Label^  label1;
    	protected: 
    
    	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->button1 = (gcnew System::Windows::Forms::Button());
    			this->button2 = (gcnew System::Windows::Forms::Button());
    			this->folderBrowserDialog1 = (gcnew System::Windows::Forms::FolderBrowserDialog());
    			this->label1 = (gcnew System::Windows::Forms::Label());
    			this->SuspendLayout();
    			// 
    			// button1
    			// 
    			this->button1->Location = System::Drawing::Point(99, 155);
    			this->button1->Name = L"button1";
    			this->button1->Size = System::Drawing::Size(75, 23);
    			this->button1->TabIndex = 0;
    			this->button1->Text = L"Exit";
    			this->button1->UseVisualStyleBackColor = true;
    			this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
    			// 
    			// button2
    			// 
    			this->button2->Location = System::Drawing::Point(99, 30);
    			this->button2->Name = L"button2";
    			this->button2->Size = System::Drawing::Size(75, 23);
    			this->button2->TabIndex = 1;
    			this->button2->Text = L"Ordner";
    			this->button2->UseVisualStyleBackColor = true;
    			this->button2->Click += gcnew System::EventHandler(this, &Form1::button2_Click);
    			// 
    			// folderBrowserDialog1
    			// 
    			this->folderBrowserDialog1->Description = L"bla";
    			// 
    			// label1
    			// 
    			this->label1->AutoEllipsis = true;
    			this->label1->Location = System::Drawing::Point(12, 81);
    			this->label1->Name = L"label1";
    			this->label1->Size = System::Drawing::Size(260, 39);
    			this->label1->TabIndex = 2;
    			this->label1->Text = L"Ordner";
    			this->label1->TextAlign = System::Drawing::ContentAlignment::MiddleCenter;
    			// 
    			// Form1
    			// 
    			this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
    			this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
    			this->ClientSize = System::Drawing::Size(284, 203);
    			this->Controls->Add(this->label1);
    			this->Controls->Add(this->button2);
    			this->Controls->Add(this->button1);
    			this->Name = L"Form1";
    			this->Text = L"Form1";
    			this->ResumeLayout(false);
    
    		}
    #pragma endregion
    	private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
    
    				 Application::Exit();
    			 }
    	private: System::Void button2_Click(System::Object^  sender, System::EventArgs^  e) {
    
    				 CString strTemp, strDatei;
    				 CFileFind DateiSuchen;
    				 int i=0;
    
    				 if (folderBrowserDialog1->ShowDialog() == Windows::Forms::DialogResult::OK)
    				  {
    					 label1->Text = folderBrowserDialog1->SelectedPath;
    					 strDatei = folderBrowserDialog1->SelectedPath;
    				  }
    
    				  BOOL bSuche = DateiSuchen.FindFile(strDatei + "\\*.*");
    				  while(bSuche)
    				  {
    					bSuche = DateiSuchen.FindNextFile();
    
    					// . und .. auschliessen
    					if(!DateiSuchen.IsDots())
    					{
    					  strTemp += DateiSuchen.GetFileName() + "\n";
    					}
    				  }
    
    				  // Ordner enthält Dateien
    				  if(strTemp !="")
    					i++;
    					label1->Text = i;
    
    				  // Ordner ist leer
    				  else{}
    
    				  // Suche schliessen
    				  DateiSuchen.Close();				
    			 }
    
    	};
    }
    


  • Schau Dir mal DirectoryInfo GetFiles an.



  • Knuddlbaer schrieb:

    Schau Dir mal DirectoryInfo GetFiles an.

    Danke, das hat mir weitergeholfen.

    Nur wieso konnte ich die AFX.H nicht einbinden? Und gibts eine Seite wo grundlegende Funktionen kurz vorgestellt werden? Ich hab immer das Problem das ich die Namen der Klassen nicht kenne und so nicht weiß wonach ich genau bei MSDN suchen muss.



  • Hellsehen kann keiner und Fehlermeldungen hast Du keine gepostet.

    In der MSDN kann man sich am Namensraum entlang hangeln - oder man verwendet Google zum finden der Probleme. Auf GetDirectory bin ich sehr schnell gestoßen als ich nach Google: c# FindFile gesucht habe.


Anmelden zum Antworten