powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ошибка при UpdateData(TRUE)
15 сообщений из 15, страница 1 из 1
Ошибка при UpdateData(TRUE)
    #34556800
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте, у меня диалог на нем два CEdit, к одному привязана переменная целого типа а к другому CString. Когда я пишу в первом поле какое нибудь число то при UpdateData(TRUE) иногда вылазит почемуто сообщение об ошибке типа MB_ABORTRETRYIGNORE|MB_ICONSTOP, ее содержимое:

Debug Error!

Program: D:\VC\strings\Debug\strings.exe

DAMAGE: after Normal block (#87) at 0x002F4AB0.


(Press Retry to debug the application)



А код выполняется сам вот как:

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
void CStringsDlg::OnButton1() 
{
	// TODO: Add your control notification handler code here
	MessageBeep( 1 );
	UpdateData(TRUE);
	MessageBeep( 1 );
	itoa(m_nEdit1,(char*)LPCTSTR(m_strEdit2), 10 );
	UpdateData(FALSE);
}

Я конечно могу и не использовать привязку текстового поля к переменной целого типа, но всетаки хочется знать в чем ошибка.
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34556844
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А если так
Код: plaintext
1.
2.
3.
4.
5.
void CStringsDlg::OnButton1() 
{
	MessageBeep( 1 );
	m_strEdit2.Format("%d", m_nEdit1);
	SetWindowText(GetDlgItem(_your_handle_to_edit_control_), m_strEdit2);
}

--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34558767
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да можно, только интересно почему ошибка, ведь все вроде правильно.
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34558783
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginnerДа можно, только интересно почему ошибка, ведь все вроде правильно.
вместо itoa надо юзать обновленнную _itoa_s
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34559290
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginner пишет:
> DAMAGE: after Normal block (#87) at 0x002F4AB0.
Это ты хип как-то портишь.

> Я конечно могу и не использовать привязку текстового поля к переменной
> целого типа, но всетаки хочется знать в чем ошибка.

Ты бы все-таки использовал привязку EDIT к переменной
целого типа, ей-богу лучше бы было, тем более что можно
одновременно и с тем, и с тем связывать.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34559296
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginner пишет:

Вот так нельзя делать : -----------vvvvv
> itoa(m_nEdit1,(char*)LPCTSTR(m_strEdit2),*10*);

Это надо делать через
CString::GetBuffer()/ReleaseBuffer()

Прочитай внимательно про CString::operator LPCTSTR () - в возвращаемый
буфер нельзя писать, он константный.

Ну или еще, естественно, можно через CString::Format() делать, как уже сказали.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34560145
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Вот так нельзя делать : -----------vvvvv
> itoa(m_nEdit1,(char*)LPCTSTR(m_strEdit2),*10*);
Это надо делать через
CString::GetBuffer()/ReleaseBuffer()

Спасибо, не знал, заработало правильно, только только странно что ошибка вылазила на пару строчек раньше.
MasterZiv
Ты бы все-таки использовал привязку EDIT к переменной
целого типа, ей-богу лучше бы было, тем более что можно
одновременно и с тем, и с тем связывать.
Не совсем понимаю что вы здесь имеете ввиду. Иривязывать контрол к объекту CEdit вместо int?


А где мне можно прочитать про типы LPCTSTR и LPTSTR? Искал в MSDN-e и не нашел ничего.

Cerebrum
вместо itoa надо юзать обновленнную _itoa_s

Я не нашел почемуто у себя такой функции, я использую VS6.0, может там ее еще небыло просто.
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34560232
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LPCTSTR = const wchar_t*
LPCSTR = wchar_t*
--
ага
--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34560237
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
т.е. LPTSTR, конечно же
--------------------------------------------------------------
[не претендую на уникальность]
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34560293
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginner пишет:
>
> Не совсем понимаю что вы здесь имеете ввиду. Иривязывать контрол к
> объекту CEdit вместо int?

Ты можешь привязывать конрол одновременно и к объекту CEdit, и к
нескольким переменным разных типов. При этом только естественно
данные В контрол будут поступать только из одной переменной -
последней в DDX_.

> А где мне можно прочитать про типы LPCTSTR и LPTSTR? Искал в MSDN-e и не
> нашел ничего.

А что там читать ?

LPTSTR == long pointer to TCHAR, TCHAR*
LPCTSTR == const long pointer to TCHAR, const TCHAR*
TCHAR == либо char, либо wchar_t, в зависимости от того, какой режим
задан макросами MBCS & UNICODE. Это надо найти в доке описание tchar.h -
general text mapping.

> вместо itoa надо юзать обновленнную _itoa_s
> Я не нашел почемуто у себя такой функции, я использую VS6.0, может там

Она только в VC8 появилась. Это новые функции т.н. безопасные заменители
стандартных функций CRTL.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34560294
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerebrum пишет:
> LPCTSTR = const wchar_t*
> LPCSTR = wchar_t*

Это - неправильно.
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34564385
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Ты можешь привязывать конрол одновременно и к объекту CEdit, и к
нескольким переменным разных типов. При этом только естественно
данные В контрол будут поступать только из одной переменной -
последней в DDX_.
А как это сделать?
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34569531
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Блин, ну как это сделать? (К нескольким объектам контрол привязать)
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34569662
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
nrmBeginner пишет:

> А как это сделать?

Руками, как-как. Берешь и пишешь вызовы DDX_ процедур, в чем проблема-то ?
Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Ошибка при UpdateData(TRUE)
    #34573704
nrmBeginner
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv
Руками, как-как. Берешь и пишешь вызовы DDX_ процедур, в чем проблема-то ?

Да я не шарю вообще в этих DDX.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Ошибка при UpdateData(TRUE)
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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