Форум программистов, компьютерный форум, киберфорум
Visual C++
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
5 / 5 / 3
Регистрация: 28.03.2010
Сообщений: 146

Переменная переменная

02.05.2010, 18:52. Показов 1283. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Создаю класс диалогового окна, которое в последствии вызываю модально. Изменяю в нем конструктор:
C++
1
2
3
4
5
6
7
8
9
COptions::COptions(CWnd* pParent,int n4,double a,bool q)
    : CDialog(COptions::IDD,pParent)
{
char *b;n4=1;
SetDlgItemText(IDC_EDIT2,(LPCTSTR)n4);
_gcvt(a,5,b);
SetDlgItemText(IDC_EDIT3,(LPCTSTR)b);
if (q) o_que.SetCheck(1);
}
Вызываю:
C++
1
2
COptions OptDlg(NULL,1,0.2,true);
OptDlg.DoModal();
Имею:


При отладке обнаружил, что параметр n4 попадает в конструктор с заоблачным значением, не имеющем ничего общего с 1 и на каждой строчке меняется... Кто нибудь знает в чем дело?
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
02.05.2010, 18:52
Ответы с готовыми решениями:

Переменная
Как создать переменную, которую когда изменяешь в программе(в Эдит Боксе), она остается измененной, сколько раз я не перезапускал бы...

Переменная is not allowed
ошибка m_pDlg в CMySocket::OnAccept и CMySocket::OnReceive переменная m_pDlg is not allowed Подскажите вчём рпоблема???не могу двинуться...

Глобальная переменная в MFC
Всем доброго времени суток, столкнулся с, наверное, детской проблемой, но решить все равно не могу. Создаю MFC приложение, нужно...

10
5 / 5 / 3
Регистрация: 28.03.2010
Сообщений: 146
02.05.2010, 19:02  [ТС]
С ошибкой разобрался... Ее вызывал метод _gcvt... И как мне теперь с плавающей точкой в строку переводить?!.. А вот почему n4 не имеет постоянного значения - загадка...
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
02.05.2010, 19:13
_sntprintf например, ужос, вы представляете себе разницу между числом и строкой?
0
5 / 5 / 3
Регистрация: 28.03.2010
Сообщений: 146
02.05.2010, 19:32  [ТС]
На мой взгляд абсолютно четко... _snprintf также вызывает падение программы...
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
02.05.2010, 19:39
_sntprintf а не _snprintf, и как используете

кстати, забавнее было бы если бы n4=0;
0
5 / 5 / 3
Регистрация: 28.03.2010
Сообщений: 146
02.05.2010, 19:52  [ТС]
Использую:
C++
1
2
3
4
5
6
7
8
9
COptions::COptions(CWnd* pParent,int n4,double a,bool q)
    : CDialog(COptions::IDD,pParent)
{
wchar_t *b;
_sntprintf(b,5,_T("%f.3"),a);
this->SetDlgItemText(IDC_EDIT2,L"shit");
this->SetDlgItemText(IDC_EDIT3,(LPCTSTR)b);
if (q) this->o_que.SetCheck(BST_UNCHECKED);
}
Имею:


Что то совсем не хочет работать((...
n4=1119637 вместо передаваемой 1...
И кстати, текст который я передаю элементам управления не уходит дальше конструктора почему то... при отображении, как были поля пустыми так и остались...
0
5 / 5 / 3
Регистрация: 28.03.2010
Сообщений: 146
02.05.2010, 19:55  [ТС]
Что примечательно падает не после применения функции перевода в строку, а после выхода из конструктора... но если закоментить строчку с _sntprintf ошибка не появляется...
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
02.05.2010, 20:09
вы пишете в указатель
Цитата Сообщение от SphiNkSs Посмотреть сообщение
wchar_t *b;
, который никуда не указывает, под строку должна быть выделена память, естественно программа падает

к тому же определитесь макросами вы пользуетесь или чистым юникодом, ну это уже так
1
5 / 5 / 3
Регистрация: 28.03.2010
Сообщений: 146
02.05.2010, 20:14  [ТС]
Большое спасибо!)) Исправил:
C++
1
2
wchar_t b;
_sntprintf(&b,5,_T("%f.3"),a);
Работает. Но...
Осталось еще две проблемы... Это очень странно передаваемая n4 и то что изменения в элементах не сохраняются... Anybody help!!!
0
бжни
 Аватар для alex_x_x
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
02.05.2010, 20:18
нет-нет

C++
1
wchar_t *b = new wchar_t[10];
как минимум, во вторый проверяйте успешность выполнения SetDlgItemText
потом,
Цитата Сообщение от SphiNkSs Посмотреть сообщение
int n4
думаю надо передавать по ссылке, иначе n4 хранится в стеке, который после выхода из конструктора ессно разрушает значение переменной
0
5 / 5 / 3
Регистрация: 28.03.2010
Сообщений: 146
02.05.2010, 21:03  [ТС]
Во всем разобрался осталось только понять почему при использовании:
C++
1
2
3
wchar_t *b=new wchar_t[10];
_snwprintf(b,5,L"%f",a);
this->SetDlgItemTextW(IDC_EDIT3,b);
Имею нужное значение в поле + какието каракули... Напрмер подаю туда 0.2, а получаю в поле: 0.200몭몭몭ꮫꮫꮫꮫﻮﻮﻮﻮﻮﻮ... Вроде везде юникод использую...
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
02.05.2010, 21:03
Помогаю со студенческими работами здесь

Переменная типа string в VisualС++
Доброго времени суток. Я работаю в Visual C++ 2008. Вопрос дурацкий, но ответь кому не сложно - как объявить переменную типа string, плиз.

Использована неинициализированная локальная переменная
Написал программу, которая считает количество перекладываний, необходимых, чтобы сравнять высоты. Компилятор в Visual Studio 2017 выводит...

Юзерская переменная для компилятора
Доброго юзаю MS Visual Studio Такой вопрос, мне нужна переменная в самой студии, что бы при компиляции проекта, в ехе-шник заносилось...

Не могу понять, почему не доступна переменная
Не могу понять, почему переменная не доступна. Пишет ошибку: error C2248: CSplitterWnd::m_cySplitterGap: невозможно обратиться к...

Перерисовка окна или переменная из диалога в окно
Всем привет! Вообщем такая проблема, перерыл весь интернет, но ничего похожего не нашел, если что-то недоглядел, то простите) Создается...


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru