سلام
برنامه C++ تحت windows form application
می خوام یه شی fstream رو یه طوری تعریف کنم که همه جای فرم بهش دسترسی داشته باشم.
تا اونجایی که من میدونم متغیر های عادی رو بعد از #pragma endregion تعریف کنیم همه جای فرم در دسترسن. ولی من یه شی fstream رو اینطوری تعریف کردم ارور داد!
اصلا توی یه رویداد فرم (مثلا فرم لد) چطوری میشه یه شی یا متغیر رو بصورت پابلیک تعریف کرد؟
تشکر . . .
کد:
#include <string>
#include <fstream>
#pragma once
namespace wincpp2 {
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;
/// <summary>
/// Summary for Form1
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class Form1 : public System::Windows::Forms::Form
{
public:
Form1(void)
{
InitializeComponent();
//
//TODO: Add the constructor code here
//
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~Form1()
{
if (components)
{
delete components;
}
}
private: System::Windows::Forms::Button^ button1;
protected:
private: System::Windows::Forms::TextBox^ textBox1;
private: System::Windows::Forms::TextBox^ textBox2;
private:
/// <summary>
/// Required designer variable.
/// </summary>
System::ComponentModel::Container ^components;
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->button1 = (gcnew System::Windows::Forms::Button());
this->textBox1 = (gcnew System::Windows::Forms::TextBox());
this->textBox2 = (gcnew System::Windows::Forms::TextBox());
this->SuspendLayout();
//
// button1
//
this->button1->Location = System::Drawing::Point(43, 143);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(109, 44);
this->button1->TabIndex = 0;
this->button1->Text = L"button1";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &Form1::button1_Click);
//
// textBox1
//
this->textBox1->Location = System::Drawing::Point(53, 22);
this->textBox1->Name = L"textBox1";
this->textBox1->Size = System::Drawing::Size(109, 20);
this->textBox1->TabIndex = 1;
//
// textBox2
//
this->textBox2->Location = System::Drawing::Point(47, 66);
this->textBox2->Name = L"textBox2";
this->textBox2->Size = System::Drawing::Size(114, 20);
this->textBox2->TabIndex = 2;
//
// Form1
//
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->ClientSize = System::Drawing::Size(284, 264);
this->Controls->Add(this->textBox2);
this->Controls->Add(this->textBox1);
this->Controls->Add(this->button1);
this->Name = L"Form1";
this->Text = L"Form1";
this->Load += gcnew System::EventHandler(this, &Form1::Form1_Load);
this->ResumeLayout(false);
this->PerformLayout();
}
#pragma endregion
fstream f("g:\\a.txt", ios::out);
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
}
private: System::Void Form1_Load(System::Object^ sender, System::EventArgs^ e) {
}
};
}
این کد فرم بود.
نمی خواد کامل بخونیدش. قسمت هایی که من اضاقه کردم :
کد:
fstream f("g:\\a.txt", ios::out);
اون خطی که fstream رو تعریف کردم ارور میده !
یه جایی پیدا کردم
بعد از تعریف namespace std و قبل از شروع کلاس فرم.
ولی فکر می کنم راه اصولی تری هم باشه