2012年4月27日 星期五

CString 轉 Char * 轉 string 的方法

在網路上找了很多方法,但始終很難用...
終於讓我找到一個很比較好用的方法來使用~~~
方法如下:

CString 轉 Char*
#define MAX_BUFFER_SIZE 1024

CString CString_Buffer;
char Char_Buffer[MAX_BUFFER_SIZE];
memset(Char_Buffer, 0, MAX_BUFFER_SIZE);   //清空Char_Buffer
int length;
length = CString_Buffer.GetLength(); 

WideCharToMultiByte(CP_ACP, WC_COMPOSITECHECK|WC_DEFAULTCHAR, CString_Buffer.GetBuffer(length), 
                    length+1, Char_Buffer, MAX_BUFFER_SIZE, 0, 0);

Char * 轉 CString
CString CString_Buffer;
char test_char[]="test_char";
//使用CString的foemat即可
CString_Buffer.format(_T("%s"), test_char);

Char* 轉 string
string result_string;
char test_char[]="test_char";
//利用assign把*char轉成string
result_string.assign(test_char);

string 轉 Char*
string test_string="test_string";;
char result_char[20];
//透過c_str()轉成str*格式後在複製過去
strcpy(result_char, test_string.c_str());

沒有留言:

張貼留言