Форум программистов, компьютерный форум, киберфорум
C/C++: WinAPI
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.62/13: Рейтинг темы: голосов - 13, средняя оценка - 4.62
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564

Нелепая ошибка в локальной переменной

18.07.2013, 15:25. Показов 2833. Ответов 29
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
И так: Пишу на Visual C++ под Winapi.

Создал диалог, в него поместил локальную переменную:
C++
1
bool VCam=0;
Создал кнопку. Привязал код к кнопке:
C++
1
2
3
4
5
6
7
8
9
if(VCam==1)
{
MessageBox(hDvc, "1", "Успех!", MB_OK);
}
if(VCam==0)
{
VCam=1;
MessageBox(hDvc, "0", "Успех!", MB_OK);
}
Задача - при повторном нажатии кнопки - чтоб выводилось "1".
А не выводится нифига! Всегда "0". Не понимаю в чём дело, хоть головой об стену бейся.

Собственно в чём может быть ошибка то ?

П.с.
если меняю код местами:
C++
1
2
3
4
5
6
7
8
9
if(VCam==0)
{
VCam=1;
MessageBox(hDvc, "0", "Успех!", MB_OK);
}
if(VCam==1)
{
MessageBox(hDvc, "1", "Успех!", MB_OK);
}
То в результате - сначало пишется "0", а потом "1", т.е. в нутри работает, но как только нажимаю на кнопку повторно - опять такое же. Т.е. результат в переменную не сохраняется... ~ ~
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
18.07.2013, 15:25
Ответы с готовыми решениями:

Применение std::move к локальной переменной при возврате из функции
Response HostHandler::notFound() const { Response resp; resp.status = 404; return std::move(resp); } Имеет ли это...

[Mono] Ошибка при использовании локальной переменной
Проблема заключается в следующем. Есть класс DataBase: using System; using MySql.Data.MySqlClient; namespace MagChatServer { ...

Ошибка работы с массивом: использование локальной переменной которой не присвоено значение
private void button2_Click(object sender, EventArgs e) { DialogResult result = openFileDialog1.ShowDialog(); ...

29
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
18.07.2013, 17:03  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от ValeryS Посмотреть сообщение
с чего это косяк?
потому что ты не понимаешь
а если тебе каждый раз нужна новая переменная, например счетчик цикла
то под неё память резервировать и хранить?
Так оно же только в блоке, так что запустил блок - объявил, вышел - удалил.
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
18.07.2013, 17:04
Цитата Сообщение от Izual Посмотреть сообщение
Т.к. тогда получается что смысл обычной локальной переменной теряется, т.к. вдруг система получит какой то вызов, и по принципу "параллельности" (т.е. оно же будет выполнять действие не буквально параллельно, а одно за другим) система сотрёт значение, даже работая в пределах одного блока, и не до делая обработку одного блока - перейдёт к другому вызову.
что то я вообще ничего не понял
система ничего не стирает
локальная переменная живет в функции вышли из функции она умерла
и кто такой блок?
какая обработка блока?

ты хоть ручками то пройди свою функцию и посмотри как она работает
или ты думаешь по команде return мы возвращаемся в начало функции?
0
:)
Эксперт С++
4773 / 3267 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
18.07.2013, 17:24
Izual, Вы путаетесь в базовых вещах. Если диалоговое окно открыто, это еще не значит, что код обработки нажатия кнопки в этом окне должен что-либо помнить. Хотите чтобы что-то запоминалось - сохраните это состояние (в переменной более высокого уровня : глобальная или член-класса (правда классов-то у Вас и нет), в статическую переменную (сохраняет свое значение после выхода из блока), запишите в файл на худой конец) куда-либо.
0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
19.07.2013, 03:24  [ТС]
Цитата Сообщение от Tulosba Посмотреть сообщение
Izual, Вы путаетесь в базовых вещах. Если диалоговое окно открыто, это еще не значит, что код обработки нажатия кнопки в этом окне должен что-либо помнить. Хотите чтобы что-то запоминалось - сохраните это состояние (в переменной более высокого уровня : глобальная или член-класса (правда классов-то у Вас и нет), в статическую переменную (сохраняет свое значение после выхода из блока), запишите в файл на худой конец) куда-либо.
Классами не пользуюсь из принципа, только структурами, и надеюсь свои "базовые знания" о структурах повысить использованием в последующем "структурами в структурах" и другими интересностями, которые можно понять и которые легко использовать, в отличии от классов.

Путаюсь, потому что книги которые имею, и по которым изучал С++ только лишь о Си и маленько о Си++, и к сожалению не имею ничего связанного с WinApi, хотя возможно и к счастью, т.к. за последние пол года, как я работаю(одновременно и учусь гуглом) в одиночку над проэктом посвящённому базой данных, понял что чистые и базовые вещи, вложенные в WinApi библиотеку - уж очень слабы, приходится буквально от и до писать самому, даже для обработки основных элементов, таких как ListView. И при этом интернет кишит примерами и факами по данному(ListView) объекту, но не на WinApi, т.е. не на чистом WinApi, а с использованием MFC, что для меня является унизительным к изучению, т.к. там вообще ничего не понятно, а отличии от WinApi, где более или менее всё по полочкам разложено, и даже посмотреть declaration можно, и чисто логически понять как и что работает даже без MSDN справки - что очень удобно, т.к. логично.

По поводу сохранения в файл - издеваетесь, у меня уже помимо основного файла БД, который содержит 500+ строк с 15 переменными в колонках, ещё с десяток подобных, не люблю нагромождать столь не нужными "локальными" вещями, ибо не эстетично, а значит - не профессионально. (Программерская+ведическая этика знаете ли^^). С глобальной переменной так же.

А по поводу статики - спасибо откликнувшимся, это хоть и решило "основную" задачу программы, но без должного понимания - я остался недоволен сайтом, на котором даже информация о различиях локальных и статических локальных переменных так размыта, пойду капать дальше, т.к. не успокоюсь, ибо идеалист)
0
19.07.2013, 06:26

Не по теме:

OMG :facepalm:

0
Неэпический
 Аватар для Croessmah
18149 / 10731 / 2067
Регистрация: 27.09.2012
Сообщений: 27,038
Записей в блоге: 1
19.07.2013, 07:51

Не по теме:

Tulosba, ну бывает, что ж тут поделаешь :)



Добавлено через 29 секунд
Цитата Сообщение от Izual Посмотреть сообщение
я остался недоволен сайтом
Читайте книги
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
19.07.2013, 08:23
Цитата Сообщение от Izual Посмотреть сообщение
Классами не пользуюсь из принципа, только структурами,
И в чем разница между ними ?
Цитата Сообщение от Izual Посмотреть сообщение
Путаюсь, потому что книги которые имею, и по которым изучал С++ только лишь о Си и маленько о Си++, и к сожалению не имею ничего связанного с WinApi,
во первых WinApi не имеет отношения к языку
во вторых весь виндос на С да и твоя прога на чистом С так что причем здесь плюсы ?
Цитата Сообщение от Izual Посмотреть сообщение
а с использованием MFC, что для меня является унизительным к изучению, т.к. там вообще ничего не понятно,
"Кто на ком стоял? - Крикнул Филипп Филиппович, - потрудитесь излагать ваши мысли яснее."(с)"Собачье сердце"
унизительным потому что не понятно
а изучать не надо потому что унизительно


Цитата Сообщение от Izual Посмотреть сообщение
"локальными" вещями, ибо не эстетично, а значит - не профессионально. (Программерская+ведическая этика знаете ли^^). С глобальной переменной так же.
нельзя ли услышать постулаты, сей этики?
Цитата Сообщение от Izual Посмотреть сообщение
А по поводу статики - спасибо откликнувшимся, это хоть и решило "основную" задачу программы, но без должного понимания - я остался недоволен сайтом, на котором даже информация о различиях локальных и статических локальных переменных так размыта,
где размыта ? Кто размыта?
в любом учебнике на первых страницах есть эта информация

Знания не дают, знания приобретают, так же как свободу

Добавлено через 54 секунды

Не по теме:

Tulosba, не плачь :)
найдем тебе другого ученика

1
19.07.2013, 08:35

Не по теме:

Цитата Сообщение от ValeryS Посмотреть сообщение
Tulosba, не плачь
найдем тебе другого ученика
Не надо ему другого :( отдайте этого :D

0
 Аватар для Izual
143 / 122 / 21
Регистрация: 13.11.2012
Сообщений: 1,564
19.07.2013, 11:33  [ТС]
Цитата Сообщение от ValeryS Посмотреть сообщение
И в чем разница между ними ?

во первых WinApi не имеет отношения к языку
во вторых весь виндос на С да и твоя прога на чистом С так что причем здесь плюсы ?
"Кто на ком стоял? - Крикнул Филипп Филиппович, - потрудитесь излагать ваши мысли яснее."(с)"Собачье сердце"
унизительным потому что не понятно
а изучать не надо потому что унизительно



нельзя ли услышать постулаты, сей этики?


где размыта ? Кто размыта?
в любом учебнике на первых страницах есть эта информация

Знания не дают, знания приобретают, так же как свободу

Добавлено через 54 секунды

Не по теме:

Tulosba, не плачь :)
найдем тебе другого ученика

1. Разница в понимании и простоте, структуры - логически понятны и просты в понимании - а это главное.
2. Пусть будет чистый Си, ещё лучше =) Хотя принцыпы ООП - это С++, но объекты и с помощью структур можно создавать, ладно не суть.
3. Не внимательно читали мой пост, я же сказал что дело в простоте.
4. Ведическая философия с программированием - страшная вещь, не думаю что вам нужно это слышать, ежели вы не ведаете. ( Не буду я ваш девственный моск "своим бредом", как обычно говорят про ведантистов, заполнять )
5. Так же как вы пост назад спросили "что такое блок" - не буду объяснять тому кто в упор не видит что пишут.

П.С. По поводу свободы - это хохма 21 века, "Ты не человек если не имееш паспорта"... Бисер метать не буду, ибо не оценят и не поймут =)

З.Ы.(2) ValeryS, я глубоко ценю людей, взваливших на себя труд, связанный с автоматизацией жизни. Однако не стоит портить отношения фразой "слушаю, но не слышу", что вы демонстрируете - это не этично, говорят что человек в человеке видит только хорошее до тех пор, пока тот не покажет свою тёмную сторону... Так не будем же наколять ситуацию=) Мы ещё сгодимся друг другу =)
0
Модератор
Эксперт по электронике
8982 / 6749 / 921
Регистрация: 14.02.2011
Сообщений: 23,875
19.07.2013, 11:50
Цитата Сообщение от Izual Посмотреть сообщение
Разница в понимании и простоте, структуры - логически понятны и просты в понимании - а это главное.
Структура отличается от класса только доступом
в структуре по умолчанию все члены открыты в классе закрыты
вот и все разница
соответственно на остальные пункты отвечать даже не буду
Перефразируя Гумилева (" Я не интеллигент,у меня профессия есть")"Я не философ, я работаю с языком"
если ты хочешь создать свой язык,и назвать его Си,так вперед
только не надо обижатся если тебя не понимают

Добавлено через 1 минуту
так к слову
Цитата Сообщение от Izual Посмотреть сообщение
Ведическая философия с программированием - страшная вещь
"Ведическая" от слова "ведать" сиречь "знать"
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
19.07.2013, 11:50

Ошибка «использование локальной переменной которой не присвоено значениe» внутри switch
Помогите, пожалуйста, не могу разобраться с оператором switch. При таком коде выдает ошибки: "Использование локальной переменной...

Ошибка: Использование локальной переменной "R", которой не присвоено значение
Ошибка 1 Использование локальной переменной "R", которой не присвоено значение Ошибка 1 Использование локальной переменной...

Ошибка "Использование локальной переменной которой не присвоено значение"
программа ввода одномерного массива с клавиатуры и поиск элемента равного нулю. выдает ошибку - "Ошибка 1 Использование локальной...

Ошибка 1 Использование локальной переменной "stat", которой не присвоено значение
Объявляю массив string stat; Потом требуется проверка. Пишу if (stat==null) и он мне жалуется на это условие. Пишет...

Ошибка "Использование локальной переменной "d", которой не присвоено значение"
Добрый день. Помогите пожалуйста... Я в целом понимаю, что вопрос мой ну очень нубский, но ответа на него не нашел самостоятельно, так...


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

Или воспользуйтесь поиском по форуму:
30
Ответ Создать тему
Новые блоги и статьи
сукцессия 33. открытые вопросы от клауде
anaschu 19.07.2026
"Что накопилось за эту часть А — тринадцать правок, из которых шесть пришли из ваших вопросов и каждая оказалась реальной ошибкой, а не калибровкой: односторонний симбиоз, отсутствующий листопад,. . .
32 сукцессия
anaschu 19.07.2026
сукцессия 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не «подкручивает» сходимость —. . .
сукцессия 31: модель микоризы - это модель ещё нескольких явлений, социальных и экономических
anaschu 18.07.2026
Теория «Всего»: апдейт v1. 1. 2 — 28‑мерное ядро стабилизировано Коллеги, фиксирую разбор инженерных правок и их изоморфную проекцию на экономику, меметику и половой отбор. Модель теперь не. . .
сукцессия 30. Массив проверяющих друг друга моделей
anaschu 18.07.2026
Архитектура сети взаимопроверяющих моделей микоризной сукцессии (v2. 0) Развитие тензорного ОДУ-ядра и создание кросс-платформенного калибровочного полигона Уважаемые коллеги! В продолжение. . .
Грибы - это женщины, деревья - это мужчины. Анти инь янь для союза мужчины и женщины.
anaschu 18.07.2026
ГЛАВНЫЙ НАУЧНО-ФИЛОСОФСКИЙ ВЫВОД: Сексуально-Репродуктивный Капитализм против Государства Моногамии Коллеги, мы вышли на финишную прямую 20-мерного ОДУ-моделирования вековой сукцессии (ветка. . .
Текстовый слайдер с нумерацией страниц и кроссбраузерность.
russiannick 18.07.2026
Один мой друг написал текстовый слайдер с нумерацией страниц. Сегодня я расскажу как он умудрился подружить его с кроссбраузерностью. Очевидно сложно угодить с шириной каждому браузеру. Один крадет. . .
Грибы - это мемы, дерево - это человек. Применение микоризной модели к теории меметики Докинза.
anaschu 18.07.2026
Меметический изоморфизм теории «всего»: Грибная сукцессия как модель эволюции идей Докинза Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а универсальную. . .
Грибы - это корпорации, деревья - это государства. Механизм массонского захвата власти
anaschu 18.07.2026
Макроэкономический изоморфизм теории «всего»: Грибная сукцессия как модель транснационального капитализма Базовый код системы ОДУ микоризной сукцессии описывает не просто биологию, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru