powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сконверитить из CString в char * ?
9 сообщений из 9, страница 1 из 1
Как сконверитить из CString в char * ?
    #33274497
Anton M.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть CString s;
Есть ф-ия formatt_(char * inp);

Как посимвольно сконвертить s в ф-ию formatt_?
...
Рейтинг: 0 / 0
Как сконверитить из CString в char * ?
    #33274657
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton M.Есть CString s;
Есть ф-ия formatt_(char * inp);

Как посимвольно сконвертить s в ф-ию formatt_?
Тут ньюансов дохрена
1а) У тебя не уникодовый прооект. Тогда CString действительно содержит массив char' ов.
1б) У тебя все-таки уникодовый прооект. Тогда CString содержит не char'ы а short'ы
2а). Функция formatt_ не модифицирует строку. Тогда надо просто снять const с внутренней строки
2б) Функция formatt_ модифицирует строку. Тогда const снимать нельзя, надо скопировать строку во внеший буфер, и уже передать его formatt_, а потом полученное записать назад.

А вообще неплохо бы для начало сделать RTFM и найти там описание CString::GetBuffer() и CString::ReleaseBuffer()
...
Рейтинг: 0 / 0
Как сконверитить из CString в char * ?
    #33274884
funikovyuri
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton M. , мне сейчас негде проверить но насколько я помню у CString есть оператор LPSTR который приводит CString к char*

Код: plaintext
1.
2.
3.
4.
CString cstr;

char *str = (LPSTR)cstr;

...
Рейтинг: 0 / 0
Как сконверитить из CString в char * ?
    #33274964
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri Anton M. , мне сейчас негде проверить но насколько я помню у CString есть оператор LPSTR который приводит CString к char*

Код: plaintext
1.
2.
3.
4.
CString cstr;

char *str = (LPSTR)cstr;


Там есть оператор operator LPCTSTR(), который все-таки даёт указатель на const: const char*.

CString cstr;

const char *str = (LPСTSTR)cstr;
...
Рейтинг: 0 / 0
Как сконверитить из CString в char * ?
    #33275070
IcyCool
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть функция LockBuffer() которая возврашает указатель на char
(Обязательно после использования вызвать ReleaseBuffer())
...
Рейтинг: 0 / 0
Как сконверитить из CString в char * ?
    #33275105
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
funikovyuri Anton M. , мне сейчас негде проверить но насколько я помню у CString есть оператор LPSTR который приводит CString к char*


(LP CT STR)
...
Рейтинг: 0 / 0
Как сконверитить из CString в char * ?
    #33276206
Anton M.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем огромное спасибо!
Решил вопрос следующим образом:
Задача на самом деле была такова:
Есть ф-я, на вход которой дается char *.
Есть main, откуда вызываем ф-ю, есть CString s.
На вход ф-ии нужно подать s .

Решил вопрос так:
NMEA_GPS_RECIEVE_DATA((LPSTR) &(((LPCTSTR) s)));

(LPSTR) &(((LPCTSTR) s)) - нехило, а? :)
...
Рейтинг: 0 / 0
Как сконверитить из CString в char * ?
    #33276595
Фотография Сергей Ильич
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Anton M. Всем огромное спасибо!

Решил вопрос так:
NMEA_GPS_RECIEVE_DATA((LPSTR) &(((LPCTSTR) s) ));

(LPSTR) &(((LPCTSTR) s)) - нехило, а? :)

Реботать если и будет, то случайно.
Судя по тому, что макрос называется RECEIVE DATA, то formatt_ все - таки модифицирует строку - он туда пишет данные с GPS. А CString специально умные люди сделали так, чтобы он не возвращал указатель на данные,ктоторые можно модифицировать.

Надо делать так
char buff[максимальная длина порции иформации, котопрую можно получить]ж
CString str = buff;
...
Рейтинг: 0 / 0
Как сконверитить из CString в char * ?
    #33276650
Anton M.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Реботать если и будет, то случайно.
Судя по тому, что макрос называется RECEIVE DATA, то formatt_ все - таки модифицирует строку - он туда пишет данные с GPS. А CString специально умные люди сделали так, чтобы он не возвращал указатель на данные,ктоторые можно модифицировать.

Надо делать так
char buff[максимальная длина порции иформации, котопрую можно получить]ж
CString str = buff;[/quot]

К сожалению ситуация такая что на вход ф-ии нужно подавть именно символ из CString s, т.е. s .
Подаваемый тип char *.
Так что просто подать buff не удастся...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как сконверитить из CString в char * ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]