Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.79/14: Рейтинг темы: голосов - 14, средняя оценка - 4.79
4 / 4 / 1
Регистрация: 16.10.2009
Сообщений: 38
1

Переобразования CString

12.11.2009, 02:27. Показов 2727. Ответов 16
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Проблема в следующем:
Єсть поле "Edit Control" иму присвоил значение "m_edit1"(CString), проблема в том, что я хочу ево переобразовать в "buff"(char) и далее работать с ним, так как будуть поступать команди через ето поле...
Много чево перечитал, несколько раз пробивал и через "GetBuffer" и пробивал так:
C++
1
2
char buff[256];
buff = LPCTSTR(m_edit1);
Но так оно и не пашет, пишет error C2440: =: невозможно преобразовать 'LPCTSTR' в 'char [256]'

Кто может подкиньте идейки...
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.11.2009, 02:27
Ответы с готовыми решениями:

CString::Format() и преобразование double в CString
Вот фрагмент программы: void CMy6_1Dlg::OnRadio3() { CString s; int i=m_list1.GetCount();...

Cstring
Помагите!!! нужно написать программу которая переводит вещественное число в строку!!!

CString в консоль
Как вывести CString в консоль? CString s="string",ss="stri"; ss=ss+s; cout<<ss; Так...

Проблема с CString
Есть проект на с++ вс2005. Получил его уже будучи откомпилированым (консольное приложение). В нем...

16
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
12.11.2009, 09:10 2
Смотри в MSDN: CString::GetBuffer(), CString::ReleaseBuffer()
0
4 / 4 / 1
Регистрация: 16.10.2009
Сообщений: 38
12.11.2009, 13:59  [ТС] 3
прочитал в MSDN про ети функции, много чево не понял, понял что конвертитуют както, но когда я начинаю писать с етими функиями у мя виходит бред, вот что наисал:
"LPTSTR buff = m_edit1.GetBuffer(10)"; - хотя что в етих дужках за число ставить так и не знаю, поставил так как в примере но ничево так и не пошло, зато новий ерор,
"error C2372: buff: переопределение; различные типы косвенного обращения"
Помогите если ктот знает что мне написать, сотрел пример, но там так и не нашол ответ на ет вопрос.
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
12.11.2009, 15:44 4
блин...
напиши
C++
1
2
char buff[256];
buff = (char *)&m_edit1;
читайте MSDN.
адрес CString фактически является адресом строки.
0
33 / 31 / 6
Регистрация: 10.11.2009
Сообщений: 123
12.11.2009, 16:26 5
была такая же ботва... так и не понял с чем связано, но иногда нельзя выбрать тип переменной у поля. надо разобраться почему.. я обычно по новой проект делаю и выбираю тип )

Пи.Ся. я не кодом пишу, а через визард
0
4 / 4 / 1
Регистрация: 16.10.2009
Сообщений: 38
15.11.2009, 12:55  [ТС] 6
Patch, пасиб за ответ, пробивал, но возникает проблема:
"error C2065: m_edit1: необъявленный идентификатор"
хотя m_edit1 используетса сразу ж в етом приложении и передайот текст в другие поля:
C++
1
2
3
UpdateData(TRUE);
    m_stat2=m_edit1;
    UpdateData(FALSE);
но обработать етот текст так и не хочет кидает ерор, что можете предложить?
0
22 / 20 / 5
Регистрация: 11.02.2009
Сообщений: 383
15.11.2009, 16:45 7
убери & перед m_edit она поидее с & сама переобразовывается в чар и изза этого возникают конфликты... а без & ты перобразуешь и отправляешь копию...

но, боюсь могу ошибаца
0
2343 / 499 / 22
Регистрация: 01.04.2009
Сообщений: 2,200
16.11.2009, 07:13 8
Цитата Сообщение от КОЗАК СЕРГІЙ Посмотреть сообщение
но обработать етот текст так и не хочет кидает ерор, что можете предложить?
код нам показать.
может, m_edit1 вовсе и не CString.
0
4 / 4 / 1
Регистрация: 16.10.2009
Сообщений: 38
17.11.2009, 14:14  [ТС] 9
Пишу что и как делаю, мож както и не точно, но потсараюсь всю проблему виложить...

Програма сама для удаленново алминистрирования, проблем по ней немало у меня но начну с етой...

Использю я ету фнкцию для передачи айпи адреси с поля m_edit1 в простую переменную...

В "панеле елементов" вибираю "edit control" и перетаскую на форму, присваиваю єй переменную "Присоить переменную" в "категории" вибираю "value" тип переменноой, соотвецтвено вибрал CString, потому как другой не подходит(с моет точки зрения), и осталось присвоить "Имя переменной" тут и пишу m_edit1.
Далее в програме хочу чтоб с поля "m_edit1" перенести весь текст в Char buff[256] так как айпи адрес считуетса как char, вот в етом и проблема, чтоб перенести айпи адрес с одново поля в переменную...

порискал в нете, нашол функрию GetWindowText но с ней тоже проблема вийшла, не знаю какой у меня хендл GetDlgItem, думал через ету функцию както зделать, но тоже не идет...
C++
1
GetWindowText(GetDlgItem(hWndDlg, IDC_EDIT1), (LPWSTR)buff, 100);
Думаю что написан подробно и с тем, с чем сттолкнудся...

Большое спасибо тем кто помагает!
0
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
17.11.2009, 15:13 10
Patch,

блин...
напиши

char buff[256];
buff = (char *)&m_edit1;


А теперь - правильный ответ (:

LPTCSTR buff = (LPCTSTR) m_edit;

Добавлено через 1 минуту
КОЗАК СЕРГІЙ,

Далее в програме хочу чтоб с поля "m_edit1" перенести весь текст в Char buff[256]

C++
1
2
TCHAR buf[256] = {0};
StringCchCopy(buf, sizeof(buf) / sizeof(buf[0]), (LPCTSTR) m_edit1);
0
4 / 4 / 1
Регистрация: 16.10.2009
Сообщений: 38
17.11.2009, 15:17  [ТС] 11
А теперь - правильный ответ (:
Дям) прям "Что?Где?Когда?" )

Сейчас попробую!..
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
17.11.2009, 15:27 12
Коллега КОЗАК СЕРГІЙ, если тебе в программе этот самый m_edit нужен только для того, чтобы вводить в него IP-адрес, то имхо использование для этой цели контрола CEdit - это уже садомазохизм. Используй столь же стандартный контрол CIPAddressCtrl - и будет тебе щастье
0
4 / 4 / 1
Регистрация: 16.10.2009
Сообщений: 38
17.11.2009, 15:30  [ТС] 13
TCHAR buf[256] = {0};
StringCchCopy(buf, sizeof(buf) / sizeof(buf[0]), (LPCTSTR) m_edit1);
Все понял, вроде, и иею понял, но вреравно проблем и как я понял уже изза того что я чот может не дописал (

error C2065: m_edit1: необъявленный идентификатор -- Хотя он обявлен, как я уже више писал(
0
MCSD: APP BUILDER
8794 / 1073 / 104
Регистрация: 17.06.2006
Сообщений: 12,602
17.11.2009, 15:35 14
КОЗАК СЕРГІЙ,

Все понял, вроде, и иею понял, но вреравно проблем и как я понял уже изза того что я чот может не дописал (

ещё надо подключить strsafe.h

Error C2065: m_edit1: необъявленный идентификатор -- Хотя он обявлен, как я уже више писал(

Компилятор врать не будет. Если он считает что ты облажался, значит 99% что так оно и есть
0
4 / 4 / 1
Регистрация: 16.10.2009
Сообщений: 38
17.11.2009, 15:43  [ТС] 15
Rififi, ну а то, что если я запускаю даже с ерором, ввожу строку и передаю сразу переменной статического поля и оно вводит, то как мне ето понимать?) компилятор то ето считает нормальним, и тутже кидает такой ерор(( називається:"чи лижи не їдуть, чи я довбанутий)))"

буду чот думать )

Добавлено через 1 минуту
CheshireCat, попробую может и через нево просто у меня пример клиент с Чаром... ну буду пробивать ...
0
Заблокирован
Автор FAQ
17.11.2009, 16:10 16
Думаю можно и так
C++
1
2
char buff[256];
sprintf(buf,m_edit1.GetBuffer(m_edit1.GetLength()));
Функция GetBuffer как раз выполняет преобразование из СString
0
Эксперт С++
2924 / 1274 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
17.11.2009, 18:38 17
-=ЮрА=-, здесь вызов GetBuffer() вообще не нужен, т.к. у CString есть operator LPCTSTR().
0
17.11.2009, 18:38
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.11.2009, 18:38
Помогаю со студенческими работами здесь

mfc CString ^
Добрый день. Создал приложение MFC c++. Есть необходимость считать содержимое поля для ввода...

Char * to CString
Добрый день, пытаюсь конвертить char* в Cstring у CString имеется собственный конструктор под...

Split CString
В Qt был метод split, а как рассплитить строки в библиотеке MFC? Пробегаюсь в цикле по...

CString, MFC
Здавствуйте! Как из объекта CString из MFC выбрать подстроку? Например, от последнего пробела и до...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
17
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru