Кибор » Кибор - Интегрированная среда разработки ботов » Отчет о ошибках » Ошибка WM_CLOSE

Страниц (1): [1]
 

1. 007wan - 03 Июня, 2019 - 02:34:38 - перейти к сообщению
Раньше такой ошибки не было. Ошибка заключается в следующем: запускается диалог(стоит 4 парам) и есть WM_CLOSE0- диалог. Жму крестик: Окно исчезает и появляется, опять повторяю раза 3-4 и программа вылетает.
WM_CLOSE (Отобразить)

Stop_Script (Отобразить)

(Добавление)
Ошибка:
 Цитата:
Сигнатура проблемы:
Имя события проблемы: APPCRASH
Имя приложения: Kibor.exe
Версия приложения: 5.2.7.0
Отметка времени приложения: 5cf419e2
Имя модуля с ошибкой: StackHash_882c
Версия модуля с ошибкой: 0.0.0.0
Отметка времени модуля с ошибкой: 00000000
Код исключения: c0000005
Смещение исключения: 00000037
Версия ОС: 6.1.7601.2.1.0.256.1
Код языка: 1049
Дополнительные сведения 1: 882c
Дополнительные сведения 2: 882c599231b483f8fdd9418d72c3a64d
Дополнительные сведения 3: 385e
Дополнительные сведения 4: 385e3d10137598c70ce2d9fe099bd2c7

Ознакомьтесь с заявлением о конфиденциальности в Интернете:
(для просмотра ссылки Вам необходимо авторизоваться)
Если заявление о конфиденциальности в Интернете недоступно, ознакомьтесь с его локальным вариантом:
C:\Windows\system32\ru-RU\erofflps.txt
2. Zireael - 03 Июня, 2019 - 02:45:30 - перейти к сообщению
 Цитата:
Окно исчезает и появляется

До этих строк:
 Цитата:
destroydialog(0);//для эффектного исчезания окна
close();

даже не дойдёт, т. к. сначала будет переход в функцию Stop_Script(), из которой переход к метке goto global Interrupt_Timer.
 Цитата:
программа вылетает

Включить отладку и посмотреть на какой строке вылет.
3. Kibor - 03 Июня, 2019 - 02:47:39 - перейти к сообщению
 007wan пишет:
function getmessage(0, WM_CLOSE)
{
//EndTask(formatwi(MainWindow), 0, 1);
Stop_Script();
destroydialog(0);//для эффектного исчезания окна
close();
}


Данный код не запускаем.
Создайте диалог сначала, объявите все переменные и подключите функции.

-----------------

Почему не запустите отладчик и не найдете строку из за которой ошибка?
4. 007wan - 03 Июня, 2019 - 02:49:29 - перейти к сообщению
Zireael , Ай, спасибо.
Тогда добавил переменную Timer, что бы вызывать функцию без или с переходом на глобальную метку
Stop_Script (Отобразить)
Вызывать теперь буду таким образом:
 Цитата:
Stop_Script(0, 0)

(Добавление)
 Kibor пишет:
Почему не запустите отладчик и не найдете строку из за которой ошибка?
Честно говоря мне он не удобен. Строки быстро летят и я запутываюсь сильно, даже ограничение в паузе тоже не помогает, т.к замедляется сам диалог и даже бывает кнопку не нажать, а когда ускоряю время, то от диалога нужно долго отклика ждать. Я не привык к такому, оба окна мешаются бывает нужно одновременно оба, а когда смотришь в отладку, то не понимаешь, т.к диалог сделал меньше, да и цифры летят быстро. Порой кажется, что тут чего-то не хватает в удобстве, но не знаю чего именно, хотя всё работает как нужно. Да и таймеры, loop мешаются, из-за них не успевает найти нужную строчку, даже в паузой запутываешься. Всё как-то монотонно.
5. Kibor - 03 Июня, 2019 - 02:59:56 - перейти к сообщению
 007wan пишет:
Честно говоря мне он не удобен. Строки быстро летят и я запутываюсь сильно, даже ограничение в паузе тоже не помогает, т.к замедляется сам диалог и даже бывает кнопку не нажать, а когда ускоряю время, то от диалога нужно долго отклика ждать. Я не привык к такому, оба окна мешаются бывает нужно одновременно оба, а когда смотришь в отладку, то не понимаешь, т.к диалог сделал меньше, да и цифры летят быстро. Порой кажется, что тут чего-то не хватает в удобстве, но не знаю чего именно, хотя всё работает как нужно. Да и таймеры, loop мешаются, из-за них не успевает найти нужную строчку, даже в паузой запутываешься. Всё как-то монотонно.

Там с головой хватает что бы разобраться где вылетела программа.
Естественно строки летят. Они показывают ход программы.
Вам не надо строки читать. Надо запустить отладчик, отключить вывод в реальном времени и свернуть его. После вылета кибор в отладчике последняя строка которая к вылету привела.
6. 007wan - 03 Июня, 2019 - 03:03:50 - перейти к сообщению
 Kibor пишет:
последняя строка которая к вылету привела.
Это да, но мне кажется он не удобен как-то.
7. Kibor - 03 Июня, 2019 - 03:08:06 - перейти к сообщению
 007wan пишет:
Это да, но мне кажется он не удобен как-то.

Удобен - не удобен.
Запускайте как я сказал и найдете ошибку.
Нам тоже не удобно что то искать в огрызках кода.

А как по вашему удобен? Телепортировать в голову сразу информацию?
8. 007wan - 03 Июня, 2019 - 03:12:04 - перейти к сообщению
 Kibor пишет:

Удобен - не удобен.
Запускайте как я сказал и найдете ошибку.
Нам тоже не удобно что то искать в огрызках кода.

А как по вашему удобен? Телепортировать в голову сразу информацию?
Даже уже сделал как надо и исправил и кроме того нашел еще одну и ошибку и тут же исправил. Всё работает - Спасибо.
9. Zireael - 11 Июля, 2019 - 17:58:39 - перейти к сообщению
CODE:
#define WS_CHILD 1073741824
#define WS_VISIBLE 268435456
#define WS_BORDER 8388608
#define LBS_NOTIFY 1

external(INT, "CreateWindow", "CreateWindowExA", "User32.dll" );

int list;
createdialog(0);
showdialog(0, "Диалог",300, 300, 300, 300, 4, 1);
loop()sleep(10);

function getmessage(0, WM_COMMAND)
{
messagebox("Событие");
}

function getmessage(0, WM_CLOSE)
{
messagebox("Закрыть");
}

function getmessage(0, WM_CREATE)
{
list=CreateWindow(0, "LISTBOX", "", LBS_NOTIFY | WS_BORDER | WS_CHILD | WS_VISIBLE, 10, 10, 150, 250, gethwnd(0), 0, 0, 0);
}

Запустить код, нажать на список. Сообщение "Событие" появится 2 раза, вместо 1. После пробуем закрыть диалог крестиком, WM_CLOSE не вызовется.

Powered by ExBB FM 1.0 Final