Làm th? nào đ? làm t?p tin I/O trong Visual C++ ho?c trong Visual C++ .NET

D?ch tiêu đ? D?ch tiêu đ?
ID c?a bài: 307398 - Xem s?n ph?m mà bài này áp d?ng vào.
Cho m?t Microsoft Visual C++ .NET 2005/2008 ECMA C+ +/ CLI Phiên b?n c?a bài vi?t này, xem 950617.
Cho m?t phiên b?n Microsoft Visual C# .NET này Bài vi?t, xem 304430.
M?t h?nh ?nh Microsoft Net Phiên b?n cơ b?n c?a bài vi?t này, xem 304427.
Bài vi?t này đ? c?p đ?n không gian tên Microsoft Khuôn kh? .NET l?p thư vi?n sau đây:
  • System::ComponentModel
  • System::Windows::Forms
  • System::drawing
Bung t?t c? | Thu g?n t?t c?

? Trang này

Tóm t?t

Bài vi?t t?ng bư?c này mô t? làm th? nào đ? làm sáu cơ b?n ho?t đ?u vào/đ?u ra (I/O) đ?ng t?p tin trong Microsoft Visual C++ 2005 ho?c trong Microsoft Visual C++ .NET. N?u b?n chưa quen v?i Khuôn kh? .NET b?n s? t?m th?y r?ng các mô h?nh đ?i tư?ng đ? t?p tin ho?t đ?ng t?i Khuôn kh? .NET là tương t? như FileSystemObject (FSO) là ph? bi?n v?i nhi?u nhà phát tri?n Microsoft Visual Studio 6.0. Đ? làm cho chuy?n đ?i d? dàng hơn, các ch?c năng đư?c th? hi?n trong này Bài vi?t đư?c d?a trên bài vi?t Cơ s? tri th?c Microsoft sau:
186118 Làm th? nào đ? s? d?ng FileSystemObject v?i Visual Basic
B?n v?n có th? s? d?ng FileSystemObject trong NET Framework. B?i v? FileSystemObject là m?t thành ph?n mô h?nh đ?i tư?ng thành ph?n (COM),Khuôn kh? .NET yêu c?u đó truy c?p vào các đ?i tư?ng thông qua các l?p Interop. Khuôn kh? .NET t?o ra m?t wrapper cho Các thành ph?n cho b?n n?u b?n mu?n s? d?ng nó. Tuy nhiên, l?p t?p tin , các l?p h?c FileInfo , m?c tin thư thoại, DirectoryInfo l?p h?c và l?p khác có liên quan trong Khuôn kh? .NET, cung c?p ch?c năng mà không s?n dùng v?i FSO, mà không có chi phí c?a các Interop l?p.

Yêu c?u

Danh sách sau đây tóm t?t các ph?n c?ng đư?c đ? ngh?, ph?n m?m, cơ s? h? t?ng m?ng, và gói b?n ghi d?ch v? đư?c yêu c?u:
  • Visual C++ 2005 ho?c Visual C ++ .NET

Ch?ng t? File i/o ho?t đ?ng

Các ví d? trong bài vi?t này mô t? cơ b?n t?p I/O ho?t đ?ng. Ph?n "T?ng bư?c ví d?" mô t? làm th? nào đ? t?o ra m?t chương tr?nh m?u đó ch?ng t? các sáu t?p I/O ho?t đ?ng sau:
  • Đ?c m?t t?p tin văn b?n
  • Vi?t m?t t?p tin văn b?n
  • Xem chi tieát taäp tin
  • Danh sách đ?a
  • cặp danh sách
  • Danh sách t?p tin

Đ?c m?t t?p tin văn b?n

M?u m? sau đây s? d?ng m?t l?p h?c StreamReader đ? đ?c m?t t?p tin văn b?n. N?i dung c?a t?p tin là Thêm vào m?t đi?u khi?n ListBox . Các kh?i c? g?ng... b?t đư?c s? d?ng đ? thông báo chương tr?nh n?u các t?p tin là có s?n ph?m nào. Có r?t nhi?u cách đ? xác đ?nh khi đ?t đư?c k?t thúc c?a t?p tin; m?u này s? d?ng Peek phương pháp đ? ki?m tra d?ng ti?p theo trư?c khi đ?c nó.
  listBox1->Items->Clear();
   	try   
	{    
		String* textFile = String::Concat(windir,                                    (S"\\mytest.txt")); 
	        StreamReader *reader=new  StreamReader(textFile);
		do
		{
		    listBox1->Items->Add(reader->ReadLine());
		}   
		while(reader->Peek() != -1);
	}      
         
	catch (System::Exception *e)
	{ 
		listBox1->Items->Add(e);
	}

}
				
Lưu ? Trong Visual C++ 2005, b?n ph?i thêm l?a ph? bi?n th?i gian ch?y h? tr? biên d?ch ch?n ngôn ng? (/clr:oldSyntax) đ? thành công biên d?ch các m?u m? trư?c đây là qu?n l? C++. Đ? thêm ph? bi?n h? tr? th?i gian ch?y ngôn ng? biên d?ch tùy ch?n, h?y làm theo các bư?c sau:
  1. B?m chu?t D? án, và sau đó nh?p vàoProjectName Thu?c tính.

    Lưu ?ProjectName là m?t gi? ch? cho tên c?a d? án.
  2. M? r?ng C?u h?nh thu?c tính, và sau đó nh?p vàoT?ng quát.
  3. Trong ngăn ph?i, b?m vào đ? ch?n H? tr? ngôn ng? chung th?i gian ch?y, c? cú pháp (/ clr:oldSyntax) trong cácPh? bi?n th?i gian ch?y ngôn ng? h? tr? thi?t l?p d? án.
  4. B?m chu?tÁp d?ng, và sau đó nh?p vào Ok.
Đ? bi?t thêm chi ti?t v? ngôn ng? chung th?i gian ch?y h? tr? biên d?ch tùy ch?n, ghé thăm Web site sau c?a Microsoft Developer Network (MSDN):
http://msdn2.Microsoft.com/en-US/Library/k8d11d4s.aspx

Vi?t m?t t?p tin văn b?n

M? m?u này s? d?ng m?t StreamWriter l?p đ? t?o ra và vi?t vào m?t t?p tin. N?u b?n có m?t s?n có t?p tin, b?n có th? m? nó trong cùng m?t cách.
StreamWriter* pwriter = new StreamWriter(S"c:\\KBTest.txt");
pwriter->WriteLine(S"File created using StreamWriter class.");
pwriter->Close();
listBox1->Items->Clear();
String *filew = new String(S"File Written to C:\\KBTest.txt");
listBox1->Items->Add(filew);
				

Xem chi tieát taäp tin

M? m?u này s? d?ng m?t l?p h?c FileInfo đ? truy c?p vào m?t t?p tin thu?c tính. Notepad.exe đư?c s? d?ng trong đi?u này m?u. Các thu?c tính xu?t hi?n trong m?t đi?u khi?n ListBox .
 listBox1->Items->Clear();
 String* testfile = String::Concat(windir, (S"\\notepad.exe")); 
 FileInfo *pFileProps  =new FileInfo(testfile);

 listBox1->Items->Add(String::Concat(S"File Name = ", (pFileProps->get_FullName() )) );
 listBox1->Items->Add(String::Concat(S"Creation Time = ", (pFileProps->get_CreationTime() ).ToString()) );
 listBox1->Items->Add(String::Concat(S"Last Access Time = "  ,(pFileProps->get_LastAccessTime() ).ToString()) );
 listBox1->Items->Add(String::Concat(S"Last Write Time = ", (pFileProps->get_LastWriteTime() ).ToString()) );
 listBox1->Items->Add(String::Concat(S"Size = ", (pFileProps->get_Length() ).ToString()) );
				

Danh sách đ?a

M? m?u này s? d?ng các l?p h?c m?c tin thư thoạilái xe đ? li?t kê các ổ đĩa logic trên m?t h? th?ng. Đ?i v?i các m?u này, Các k?t qu? xu?t hi?n trong m?t đi?u khi?n ListBox .
  listBox1->Items->Clear();
  String* drives[] = Directory::GetLogicalDrives();
  int numDrives = drives->get_Length();
  for (int i=0; i<numDrives; i++)
  {
	listBox1->Items->Add(drives[i]);
  } 
				

Danh sách Cặp con

M? m?u này s? d?ng phương pháp GetDirectories h?ng m?c đ? có đư?c m?t danh sách các m?c tin thư thoại.
listBox1->Items->Clear();
String* dirs[] = Directory::GetDirectories(windir);
int numDirs = dirs->get_Length();
for (int i=0; i<numDirs; i++)
{
listBox1->Items->Add(dirs[i]);
}
				

Danh sách t?p tin

M? m?u này s? d?ng phương pháp GetFiles h?ng m?c đ? có đư?c m?t danh sách các t?p tin.
listBox1->Items->Clear();
String* files[]= Directory::GetFiles(this->windir);
int numFiles = files->get_Length();
for (int i=0; i<numFiles; i++)
{
  listBox1->Items->Add(files[i]);
}
				
Nhi?u đi?u có th? đi sai khi m?t ngư?i s? d?ng tăng quy?n truy c?p vào t?p tin. Các t?p tin có th? không t?n t?i, các t?p tin có th? s? d?ng, ho?c ngư?i dùng có th? không có quy?n các t?p tin m?c tin thư thoại mà h? đang c? g?ng truy c?p. Xem xét các kh? năng khi b?n vi?t m? đ? x? l? các trư?ng h?p ngo?i l? có th? đư?c t?o ra.

Ví d? t?ng bư?c

  1. B?t đ?u Microsoft Visual Studio Net, Microsoft Visual Studio 2005, ho?c Microsoft Visual C++ 2005 Express Edition.
  2. Trên các T?p tin tr?nh đơn, đi?m đ?nM?i, và sau đó nh?p vào D? án.
  3. Theo Các lo?i d? án, b?m vàoD? án Visual C ++. Theo M?u ph?n, b?m vàoC?a s? h?nh th?c ?ng d?ng (net).

    Lưu ? Trong Visual Studio 2005, h?y nh?p vàoVisual C ++ theo Các lo?i d? án. Theo M?u, b?m vàoC?a s? h?nh th?c ?ng d?ng.
  4. Lo?i KB307398 trong cácTên h?p, lo?i C:\ trong cácV? trí h?p, và sau đó b?m vàoOk.
  5. M? các h?nh th?c Form1 trong thi?t k? xem, và sau đó nh?n F4 đ? m? các C?a s? Propertries.
  6. Trong c?a s? thu?c tính, m? r?ng các Kích thư?cm?c tin thư thoại. Trong các Chi?u r?ng h?p, lo?i 700. Trong các Chi?u cao h?p, lo?i320.
  7. Thêm m?t ListBox ki?m soát và sáunút ch?n m?t ki?m soát đ? Form1.

    Lưu ? Đ? xem h?p công c?, b?m vào H?p công c? trên các Xem tr?nh đơn.
  8. Trong c?a s? thu?c tính, thay đ?i cácV? trí, các Tên, các Kích thư?c, cácTabIndex, và Văn b?n thu?c tính c?a các đi?u khi?n như sau:
    Thu g?n b?ng nàyBung r?ng b?ng này
    Ki?m soát IDV? tríTênKích thư?cTabIndexVăn b?n
    button1500, 32button1112, 231Đ?c văn b?n t?p tin
    button2500, 64button2112, 232Vi?t t?p tin văn b?n
    button3500, 96button3112, 233Xem chi tieát taäp tin
    button4500, 128button4112, 234Danh sách ổ đĩa
    button5500, 160button5112, 235Danh sách Cặp con
    button6500, 192button6112, 236Danh sách t?p tin
    listBox124, 24listBox1450, 2000listBox1
  9. M? t?p tin Form1.h. Trong b?n tuyên b? l?p Form1 , khai báo m?t bi?n chu?i riêng v?i đo?n m? sau:
    private:
    		String *windir;
  10. Trong các nhà xây d?ng l?p Form1 thêm m? sau đây:
    windir = System::Environment::GetEnvironmentVariable("windir");
  11. Đ? th?c hi?n ho?t đ?ng đ?u ra t?p tin đ?u vào, thêm System::IO không gian tên.
  12. Nh?n SHIFT + F7 đ? m? Form1 trong Cửa sổ thiết kế. B?m đúp nút ch?n m?t Đ?c văn b?n t?p tin , và sau đó dán đo?n m? sau:

    Lưu ? Trong Visual C++ 2005, h?y nh?p vào Nhà thi?t k? trong các Xem tr?nh đơn.
    // How to read a text file:
    // Use try...catch to deal with a 0 byte file or a non-existant file.
    listBox1->Items->Clear();
    
    try   
    {    
    	String* textFile = String::Concat(windir, (S"\\mytest.txt")); 
    	StreamReader *reader=new  StreamReader(textFile);
    	do
    	{
    	listBox1->Items->Add(reader->ReadLine());
    	}   
    	while(reader->Peek() != -1);
    }    
    catch(FileNotFoundException *ex)
    {
    	listBox1->Items->Add(ex);
    }  
            
    catch (System::Exception *e)
    { 
    	listBox1->Items->Add(e);
    }
  13. Trong ch? đ? xem Form1 thi?t k?, nh?p đúp vào nút ch?n m?t Vi?t văn b?n t?p tin , và sau đó dán đo?n m? sau:
    // This demonstrates how to create and to write to a text file.
    StreamWriter* pwriter = new StreamWriter(S"c:\\KBTest.txt");
    pwriter->WriteLine(S"The file was created by using the StreamWriter class.");
    pwriter->Close();
    listBox1->Items->Clear();
    String *filew = new String(S"File written to C:\\KBTest.txt");
    listBox1->Items->Add(filew);
  14. Trong ch? đ? xem Form1 thi?t k?, nh?p đúp vào nút ch?n m?t Xem t?p tin thông tin , và sau đó dán đo?n m? sau trong phương pháp:
    // This code retrieves file properties. The example uses Notepad.exe.
    listBox1->Items->Clear();
    String* testfile = String::Concat(windir, (S"\\notepad.exe")); 
    FileInfo *pFileProps  =new FileInfo(testfile);
    
    listBox1->Items->Add(String::Concat(S"File Name = ", (pFileProps->get_FullName() )) );
    listBox1->Items->Add(String::Concat(S"Creation Time = ", (pFileProps->get_CreationTime() ).ToString()) );
    listBox1->Items->Add(String::Concat(S"Last Access Time = "  ,(pFileProps->get_LastAccessTime() ).ToString()) );
    listBox1->Items->Add(String::Concat(S"Last Write Time = ", (pFileProps->get_LastWriteTime() ).ToString()) );
    listBox1->Items->Add(String::Concat(S"Size = ", (pFileProps->get_Length() ).ToString()) );
  15. Trong ch? đ? xem Form1 thi?t k?, nh?p đúp vào nút ch?n m?t Danh sách ổ đĩa , và sau đó dán đo?n m? sau:
    // This demonstrates how to obtain a list of disk drives.
    listBox1->Items->Clear();
    String* drives[] = Directory::GetLogicalDrives();
    int numDrives = drives->get_Length();
    for (int i=0; i<numDrives; i++)
    {
    	listBox1->Items->Add(drives[i]);
    }
  16. Trong ch? đ? xem Form1 thi?t k?, nh?p đúp vào nút ch?n m?t cặp danh sách con , và sau đó dán đo?n m? sau:
    // This code obtains a list of folders. This example uses the Windows folder.
    listBox1->Items->Clear();
    String* dirs[] = Directory::GetDirectories(windir);
    int numDirs = dirs->get_Length();
    for (int i=0; i<numDirs; i++)
    {
    	listBox1->Items->Add(dirs[i]);                                                    
    }
  17. Trong ch? đ? xem Form1 thi?t k?, nh?p đúp vào T?p tin danh sách nút ch?n m?t, và sau đó dán đo?n m? sau:
    // This code obtains a list of files. This example uses the Windows folder.
    listBox1->Items->Clear();
    String* files[]= Directory::GetFiles(this->windir);
    int numFiles = files->get_Length();
    for (int i=0; i<numFiles; i++)
    {
    	listBox1->Items->Add(files[i]);
    }
  18. Đ? xây d?ng và sau đó ch?y chương tr?nh, b?m CTRL + F5.

Hoàn thành m?u m?

Lưu ? B?n ph?i thay đ?i m? sau khi ch?y trong Visual C++ 2005.
//Form1.h
#pragma once


namespace KB307398
{
	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;

	/// <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 __gc class Form1 : public System::Windows::Forms::Form
	{
	private:
		String *windir;
	public:
		Form1(void)
		{
			windir = System::Environment::GetEnvironmentVariable("windir");
			InitializeComponent();
		}
  
	protected:
		void Dispose(Boolean disposing)
		{
			if (disposing && components)
			{
				components->Dispose();
			}
			__super::Dispose(disposing);
		}
	private: System::Windows::Forms::Button *  button1;
	private: System::Windows::Forms::Button *  button2;
	private: System::Windows::Forms::Button *  button3;
	private: System::Windows::Forms::Button *  button4;
	private: System::Windows::Forms::Button *  button5;
	private: System::Windows::Forms::Button *  button6;
	private: System::Windows::Forms::ListBox *  listBox1;

	private:
		/// <summary>
		/// Required designer variable.
		/// </summary>
		System::ComponentModel::Container * components;

		/// <summary>
		/// Required method for Designer support - do not modify
		/// the contents of this method with the code editor.
		/// </summary>
		void InitializeComponent(void)
		{
			this->button1 = new System::Windows::Forms::Button();
			this->button2 = new System::Windows::Forms::Button();
			this->button3 = new System::Windows::Forms::Button();
			this->button4 = new System::Windows::Forms::Button();
			this->button5 = new System::Windows::Forms::Button();
			this->button6 = new System::Windows::Forms::Button();
			this->listBox1 = new System::Windows::Forms::ListBox();
			this->SuspendLayout();
			// 
			// button1
			// 
			this->button1->Location = System::Drawing::Point(500, 32);
			this->button1->Name = S"button1";
			this->button1->Size = System::Drawing::Size(112, 23);
			this->button1->TabIndex = 1;
			this->button1->Text = S"Read Text File";
			this->button1->Click += new System::EventHandler(this, button1_Click);
			// 
			// button2
			// 
			this->button2->Location = System::Drawing::Point(500, 64);
			this->button2->Name = S"button2";
			this->button2->Size = System::Drawing::Size(112, 23);
			this->button2->TabIndex = 2;
			this->button2->Text = S"Write Text File";
			this->button2->Click += new System::EventHandler(this, button2_Click);
			// 
			// button3
			// 
			this->button3->Location = System::Drawing::Point(500, 96);
			this->button3->Name = S"button3";
			this->button3->Size = System::Drawing::Size(112, 23);
			this->button3->TabIndex = 3;
			this->button3->Text = S"View File Information";
			this->button3->Click += new System::EventHandler(this, button3_Click);
			// 
			// button4
			// 
			this->button4->Location = System::Drawing::Point(500, 128);
			this->button4->Name = S"button4";
			this->button4->Size = System::Drawing::Size(112, 23);
			this->button4->TabIndex = 4;
			this->button4->Text = S"List Drives";
			this->button4->Click += new System::EventHandler(this, button4_Click);
			// 
			// button5
			// 
			this->button5->Location = System::Drawing::Point(500, 160);
			this->button5->Name = S"button5";
			this->button5->Size = System::Drawing::Size(112, 23);
			this->button5->TabIndex = 5;
			this->button5->Text = S"List Subfolders";
			this->button5->Click += new System::EventHandler(this, button5_Click);
			// 
			// button6
			// 
			this->button6->Location = System::Drawing::Point(500, 188);
			this->button6->Name = S"button6";
			this->button6->Size = System::Drawing::Size(112, 23);
			this->button6->TabIndex = 6;
			this->button6->Text = S"List Files";
			this->button6->Click += new System::EventHandler(this, button6_Click);
			// 
			// listBox1
			// 
			this->listBox1->Location = System::Drawing::Point(24, 24);
			this->listBox1->Name = S"listBox1";
			this->listBox1->Size = System::Drawing::Size(450, 199);
			this->listBox1->TabIndex = 0;
			// 
			// Form1
			// 
			this->AutoScaleBaseSize = System::Drawing::Size(5, 13);
			this->ClientSize = System::Drawing::Size(692, 293);
			this->Controls->Add(this->listBox1);
			this->Controls->Add(this->button6);
			this->Controls->Add(this->button5);
			this->Controls->Add(this->button4);
			this->Controls->Add(this->button3);
			this->Controls->Add(this->button2);
			this->Controls->Add(this->button1);
			this->Name = S"Form1";
			this->Text = S"Form1";
			this->ResumeLayout(false);

		}	
	private: System::Void button1_Click(System::Object *  sender, System::EventArgs *  e)
			 {// This code shows how to read a text file.
// The try...catch code is to deal with a 0 byte file or a non-existant file.
listBox1->Items->Clear();

				try   
				{    
					String* textFile = String::Concat(windir, (S"\\mytest.txt")); 
					StreamReader *reader=new  StreamReader(textFile);
					do
					{
					listBox1->Items->Add(reader->ReadLine());
					}   
					while(reader->Peek() != -1);
				} 
				catch(FileNotFoundException *ex)
				{
					listBox1->Items->Add(ex);
				}	     
				        
				catch (System::Exception *e)
				{ 
					listBox1->Items->Add(e);
				}
			 }

private: System::Void button2_Click(System::Object *  sender, System::EventArgs *  e)
		 {// This code demonstrates how to create and to write to a text file.
StreamWriter* pwriter = new StreamWriter(S"c:\\KBTest.txt");
pwriter->WriteLine(S"The file was created by using the StreamWriter class.");
pwriter->Close();
listBox1->Items->Clear();
String *filew = new String(S"The file was written to C:\\KBTest.txt");
listBox1->Items->Add(filew);
		 }

private: System::Void button3_Click(System::Object *  sender, System::EventArgs *  e)
		 {// This code retrieves file properties. This example uses Notepad.exe.
listBox1->Items->Clear();
String* testfile = String::Concat(windir, (S"\\notepad.exe")); 
FileInfo *pFileProps  =new FileInfo(testfile);

listBox1->Items->Add(String::Concat(S"File Name = ", (pFileProps->get_FullName() )) );
listBox1->Items->Add(String::Concat(S"Creation Time = ", (pFileProps->get_CreationTime() ).ToString()) );
listBox1->Items->Add(String::Concat(S"Last Access Time = "  ,(pFileProps->get_LastAccessTime() ).ToString()) );
listBox1->Items->Add(String::Concat(S"Last Write Time = ", (pFileProps->get_LastWriteTime() ).ToString()) );
listBox1->Items->Add(String::Concat(S"Size = ", (pFileProps->get_Length() ).ToString()) );
		 }

private: System::Void button4_Click(System::Object *  sender, System::EventArgs *  e)
		 {// The code demonstrates how to obtain a list of disk drives.
listBox1->Items->Clear();
String* drives[] = Directory::GetLogicalDrives();
int numDrives = drives->get_Length();
for (int i=0; i<numDrives; i++)
{
	listBox1->Items->Add(drives[i]);
}
		 }

private: System::Void button5_Click(System::Object *  sender, System::EventArgs *  e)
		 {// This code obtains a list of folders. This example uses the Windows folder.
listBox1->Items->Clear();
String* dirs[] = Directory::GetDirectories(windir);
int numDirs = dirs->get_Length();
for (int i=0; i<numDirs; i++)
{
	listBox1->Items->Add(dirs[i]);                                                    
}
		 }

private: System::Void button6_Click(System::Object *  sender, System::EventArgs *  e)
		 {// This code obtains a list of files. This example uses the Windows folder.
listBox1->Items->Clear();
String* files[]= Directory::GetFiles(this->windir);
int numFiles = files->get_Length();
for (int i=0; i<numFiles; i++)
{
	listBox1->Items->Add(files[i]);
}
		 }

};
}

//Form1.cpp
#include "stdafx.h"
#include "Form1.h"
#include <windows.h>

using namespace KB307398;

int APIENTRY _tWinMain(HINSTANCE hInstance,
                     HINSTANCE hPrevInstance,
                     LPTSTR    lpCmdLine,
                     int       nCmdShow)
{
	System::Threading::Thread::CurrentThread->ApartmentState = System::Threading::ApartmentState::STA;
	Application::Run(new Form1());
	return 0;
}

Tham kh?o

Đ? bi?t thêm thông tin, ghé thăm Web site sau c?a Microsoft:
http://support.Microsoft.com/default.aspx?xmlid=FH;EN-US; vcnet
Đ? bi?t thêm thông tin v? làm th? nào đ? t?o ra h?nh th?c Windows trong qu?n l? Ti?n ích m? r?ng cho c + +, xem m?u "ManagedCWinFormWiz" trong Visual Studio .NET Tr? giúp.

Thu?c tính

ID c?a bài: 307398 - L?n xem xét sau cùng: 28 Tháng Sáu 2013 - Xem xét l?i: 3.0
Áp d?ng
  • Microsoft Visual C++ 2008 Express Edition
  • Microsoft Visual C++ 2005 Express Edition
  • Microsoft Visual C++ .NET 2003 Standard Edition
T? khóa: 
kbwindowsforms kbforms kbio kbfileio kbhowtomaster kbnewsgrouplink kbmt KB307398 KbMtvi
Máy d?ch
QUAN TRỌNG: Bài viết này được d?ch b?ng phần mềm dịch thu?t của Microsoft và có thể được Cộng đồng Microsoft chỉnh sửa l?i thông qua công nghệ CTF thay vì một biên dịch viên chuyên nghiệp. Microsoft cung c?p các bài vi?t đư?c c? biên d?ch viên và ph?n m?m d?ch thu?t th?c hi?n và c?ng đ?ng ch?nh s?a l?i đ? b?n có th? truy c?p vào t?t c? các bài vi?t trong Cơ s? Ki?n th?c c?a chúng tôi b?ng nhi?u ngôn ng? Tuy nhiên, bài vi?t do máy d?ch hoặc thậm chí cộng đồng chỉnh sửa sau không ph?i lúc nào c?ng hoàn h?o. Các bài vi?t này có th? ch?a các sai sót v? t? v?ng, cú pháp ho?c ng? pháp, Microsoft không ch?u trách nhi?m v? b?t k? s? thi?u chính xác, sai sót ho?c thi?t h?i nào do vi?c d?ch sai n?i dung ho?c do ho?t đ?ng s? d?ng c?a khách hàng gây ra.
Nh?p chu?t vào đây đ? xem b?n ti?ng Anh c?a bài vi?t này: 307398

Cung cấp Phản hồi

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com