Очень простой вопрос, И очень срочный
От: Max Россия  
Дата: 22.10.01 12:28
Оценка:
Привет.

Подскажите пожалуйста как сконвертить CString в char* (но не в const char*)
Я знаю чтобы сконвертить CString в const char* я использую следущий код :

CString test = "test";
const char* = (LPCTSTR)test;

но как быть если мне нужен char*

Спасибо
Re: Очень простой вопрос, И очень срочный
От: Igor Soukhov  
Дата: 22.10.01 12:49
Оценка:
Здравствуйте 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;
* thriving in a production environment *
Re: Очень простой вопрос, И очень срочный
От: The Lex Украина  
Дата: 22.10.01 15:47
Оценка:
Здравствуйте 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>Спасибо

Всегда пожалуйста...
Голь на выдумку хитра, однако...
Re[2]: Очень простой вопрос, И очень срочный
От: LCh Россия  
Дата: 20.05.02 10:32
Оценка:
Здравствуйте The Lex, Вы писали:

TL>Здравствуйте Max, Вы писали:


Max>>Подскажите пожалуйста как сконвертить CString в char* (но не в const char*)

Max>>Я знаю чтобы сконвертить CString в const char* я использую следущий код :

CString a("text");
char* b = (LPTSTR)(LPCTSTR)a;

Не уверен. Но компилятор не рычит и не выпадает ничего.
Re[3]: Очень простой вопрос, И очень срочный
От: Trantor Россия  
Дата: 20.05.02 11:36
Оценка:
Здравствуйте 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);
В жизни мало быть умным, надо еще быть не дураком.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.