Привет.
Подскажите пожалуйста как сконвертить CString в char* (но не в const char*)
Я знаю чтобы сконвертить CString в const char* я использую следущий код :
CString test = "test";
const char* = (LPCTSTR)test;
но как быть если мне нужен char*
Спасибо
Здравствуйте Max, Вы писали:
Max>Подскажите пожалуйста как сконвертить CString в char* (но не в const char*)
Max>Я знаю чтобы сконвертить CString в const char* я использую следущий код :
Max>CString test = "test";
Max>const char* = (LPCTSTR)test;
насколько я понимаю самое =) корректное решение:
CString test = "test";
char * szTest = new char[test.GetLength() + 1];
strcpy(szTest, test);
//some processing with szTest data
delete [] szTest;
Здравствуйте Max, Вы писали:
Max>Подскажите пожалуйста как сконвертить CString в char* (но не в const char*)
Max>Я знаю чтобы сконвертить CString в const char* я использую следущий код :
Max>CString test = "test";
Max>const char* = (LPCTSTR)test;
Кстати, использовать явное приведение не слишком корректно, я так думаю.
Max>но как быть если мне нужен char*
Я делаю так:
CString strTest = "test";
char* pszTest = strTest.GetBuffer(strTest.GetLength());
// получаем прямой доступ к внутреннему буферу strTest
// и работаем с этим содержимым
// ...
strTest.ReleaseBuffer();
pszTest = NULL; // после освобождения буфера не гарантируется,
// что указатель будет правильным, поэтому рекомендую сразу же
// обнулять указатель
Max>Спасибо
Всегда пожалуйста...
Здравствуйте LCh, Вы писали:
LCh>Здравствуйте The Lex, Вы писали:
TL>>Здравствуйте Max, Вы писали:
Max>>>Подскажите пожалуйста как сконвертить CString в char* (но не в const char*)
Max>>>Я знаю чтобы сконвертить CString в const char* я использую следущий код :
LCh>CString a("text");
LCh>char* b = (LPTSTR)(LPCTSTR)a;
LCh>Не уверен. Но компилятор не рычит и не выпадает ничего.
Ну тогда уж корректнее будет:
CString a("text");
char* b = const_cast<char*>(a);