Поиск:

Ответ в темуСоздание новой темы Создание опроса
> вылетает программа из-за ComboBox'a, при попытке получить из него данные 
V
    Опции темы
Grief
Дата 14.5.2007, 09:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 6.2.2007
Где: СПб

Репутация: нет
Всего: нет



Помогите пожалуйста! Ситуация такая: есть форма, на форме множество эдитов и один комбобокс. С эдитов данные получаю, все работает. Попробовала получить с данные с комбобокса так:

Код

char szBuff[255];
GetDlgItem(IDC_SPEED)->GetWindowTextA(szBuff,254); 
m_pSpeed = (float)atof(szBuff);


где переменная m_pSpeed типа float. Не работает.

Решила попробовать как в книжке написано
Код

m_Speed.GetLBText(m_Speed.GetCurSel(), m_tSpeed);
m_pSpeed = (float)atof(m_tSpeed);


где переменные
Код

CString m_tSpeed;
float m_pSpeed;
CComboBox m_Speed;


Много переменных, толку ноль, не работает. В обоих случаях при попытке изменить данные выдает:

Heap block at 00C8A4B8 modified at 00C8B674 past requested size of 11b4
Windows has triggered a breakpoint in SolGraph.exe.

This may be due to a corruption of the heap, and indicates a bug in SolGraph.exe or any of the DLLs it has loaded.

The output window may have more diagnostic information

Как правильно получить данные (мне нужно получить цифры)?

Заранее спасибо!
PM MAIL   Вверх
Rapalex
Дата 14.5.2007, 10:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 6
Всего: 8



Grief, не знаю на сколько ты новичёк в мфц, я тебе дам совет...

Функцию GetWindowTextA не используй, она чётко привязывается НЕ к укоду, а если ты используеш студию 2005 то там уникод по умолчанию ставится, такчто используй GetWindowText.

Тип char тоже забудь испотзуй TCHAR он то один байт то два, зависит от того какие настройки у проекта (на форуме есть такие топики, если интересно поищи).

Ну и как следствие atof тоже не подходит, используй _tstof или _ttof, непомню в чём там разница.

В принцыпе код правльный, думаю должно работать если нужные типы поставить.

А ещё возможна ошибка тут:
Цитата(Grief @  14.5.2007,  09:50 Найти цитируемый пост)
m_Speed.GetLBText(m_Speed.GetCurSel(), m_tSpeed);

У комбобокса может не быть выбранной строки!!!


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
zkv
Дата 14.5.2007, 11:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


Профиль
Группа: Участник Клуба
Сообщений: 2133
Регистрация: 23.7.2006
Где: Санкт-Петербург

Репутация: 16
Всего: 92



Grief, а вы уверены, что здесь проблема, отладчиком пробовали по этим строкам пройти (правой мышью по строке -> Run to cursor, потом Step Over на панели Debug), где конкретно падает прога?
PM MAIL   Вверх
Grief
Дата 14.5.2007, 12:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 17
Регистрация: 6.2.2007
Где: СПб

Репутация: нет
Всего: нет



zkv, Rapalex, спасибо за ответы!
сейчас посмотрела, ошибка возникает при вводе определенного значения, буду думать...
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Visual C++/MFC/WTL | Следующая тема »


 




[ Время генерации скрипта: 0.0451 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.