Page 3 of 7
Re: VS 2013 C++, pe2kos и Hello World
Posted: Fri Dec 26, 2014 10:56 am
by ZblCoder
Как можно реализовать прием сообщений только по отрисовке и закрытие окна, а нажатия кнопок клавиатуры и мыши игнорировались?
Хотя будет достаточно аналога из Delphi:
Просто по команде получить весь список сообщений и его обработать в цикле. Пробовал сделать цикл и получение сообщений в нем, но не смог отследить, что сообщения закончились.
Re: VS 2013 C++, pe2kos и Hello World
Posted: Fri Dec 26, 2014 2:20 pm
by Wildwest
глянь
http://wiki.kolibrios.org/wiki/C/C%2B%2B_programming
case 2:
// key pressed, read it and ignore
_msys_get_key();
break;
Re: VS 2013 C++, pe2kos и Hello World
Posted: Fri Dec 26, 2014 2:54 pm
by kiv
Думаю он спрашивал
не про нажатие кнопок, а про
то накапливает ли KOS запросы на отрисовку GUI и если да, то как заставить её отрисовать всё сразу.
Spoiler:
Я тут не специалист и зарегистрировался только недавно, поэтому могу только предполагать. попробуй, прокатит ли такой трюк с аналогом Функции 12:
Code: Select all
kos_WindowRedrawStatus(2), kos_WindowRedrawStatus(1);
// удаляет все определённые (функцией 8) кнопки,
// их можно определить повторно.
// Для этого удобно использовать отдельную функцию,
// чтобы не писать список кнопок заново.
Re: VS 2013 C++, pe2kos и Hello World
Posted: Fri Dec 26, 2014 3:45 pm
by ZblCoder
я пытался делать через
http://wiki.kolibrios.org/wiki/SysFn11/ru, но тут бесконечный цикл получается, по теории правильно.
Code: Select all
void ProcessMessages()
{
for(;;)
{
switch (kos_CheckForEvent())
{
case 0:
return;
case 1:
draw_window();
break;
case 3:
kos_ExitApp();
break;
}
}
}
kos_CheckForEvent:
Code: Select all
Dword kos_CheckForEvent()
{
__asm{
push 11
pop eax
int 0x40
}
}
Re: VS 2013 C++, pe2kos и Hello World
Posted: Fri Dec 26, 2014 4:10 pm
by kiv
1. определяешь кнопку в следствии чего начинается очередная перерисовка
2. срабатывает case 1
3. в котором начинается очередная перерисовка
Так?
добавь запись в лог перед break и всё станет ясно
Re: VS 2013 C++, pe2kos и Hello World
Posted: Fri Dec 26, 2014 4:11 pm
by CleverMouse
Если событие нажатия на клавишу было в очереди, то оно оттуда не уйдёт, пока не будет считано функцией 2. Если оно не нужно, можно его замаскировать функцией 40.
Re: VS 2013 C++, pe2kos и Hello World
Posted: Sun Dec 28, 2014 9:47 pm
by ZblCoder
После коммита авто-сборщик выдает ошибку. Почему может не создаваться "func.obj"? (
исходники)
Code: Select all
* 10% 1) [0.003s] build-rus/programs/games/LaserTank/trunk
tup error: Unable to create output file 'func.obj' because it is already owned by command 171664.
- [171664] build-rus/programs/games/LaserTank/trunk/[[34mcl /c /O2 /Os /Oy /GF /GS- /GR- /EHs-c- /fp:fast /GL /QIfist /Gr /arch:IA32 /DAUTOBUILD /DLANG=RUS /Fofunc.obj smalllibc/func.cpp >&2[0m]
tup error [string "builtin"]:233: Failed to define rule.
stack traceback:
[C]: in function 'definerule'
[string "builtin"]:233: in function 'frule'
[string "builtin"]:309: in function 'foreach_rule'
[string "../../../use_msvc.lua"]:10: in function 'compile_msvc'
[string "Tupfile.lua"]:12: in main chunk
*** tup: 1 job failed.
Re: VS 2013 C++, pe2kos и Hello World
Posted: Sun Dec 28, 2014 11:10 pm
by yogev_ezra
ZblCoder wrote:После коммита авто-сборщик выдает ошибку. Почему может не создаваться "func.obj"?
Я вижу минимум 2 проблемы (возможно, есть что-то ещё, но это то, что я заметил, просто глянув на файлы):
- Несоответствие названия файла ...smalllibc/mcsmemm.h подключаемому в ...smalllibc/func.hLinux различает верхний и нижний регистр - для него MCSMEMM.H и mcsmemm.h - это 2 разных файла. Так что нужно либо файл переименовать на верхний регистр, либо в #include использовать нижний.
- В других примерах сборки MSVC на SVN я вижу в tupfile.lua в строчке "compile_msvc" включение только .cpp-файлов, тогда как ты включил и .h
Re: VS 2013 C++, pe2kos и Hello World
Posted: Sun Dec 28, 2014 11:25 pm
by ZblCoder
1. Поменял в файле на нижний регистр, но ошибка та же (проверил в се файлы, больше мест нет).
2. Если без *.h файлов, то ошибок вообще тонна
http://builds.kolibrios.org/logs/svn5280-err.txt
Re: VS 2013 C++, pe2kos и Hello World
Posted: Sun Dec 28, 2014 11:41 pm
by yogev_ezra
В
include-ах относительный путь должен быть правильным, если это не системная библиотека вроде
#include <stdarg.h>.
Например, в файле
...games/LaserTank/trunk/image.cpp, вместо
должно быть
Re: VS 2013 C++, pe2kos и Hello World
Posted: Sun Dec 28, 2014 11:56 pm
by ZblCoder
ууууу, стал еще более жестокий ужас, но все *.obj собрал.
http://builds.kolibrios.org/logs/svn5281-err.txt
Re: VS 2013 C++, pe2kos и Hello World
Posted: Sun Dec 28, 2014 11:59 pm
by ZblCoder
Также для отчета выкладываю
видео последней собранной версии.
Re: VS 2013 C++, pe2kos и Hello World
Posted: Mon Dec 29, 2014 12:16 am
by Mario_r4
.
Re: VS 2013 C++, pe2kos и Hello World
Posted: Mon Dec 29, 2014 12:20 am
by ZblCoder
Mario_r4 wrote:ZblCoder
Чем видео захватывал?
Open Broadcaster Software, через нее еще стримлю.
Re: VS 2013 C++, pe2kos и Hello World
Posted: Mon Dec 29, 2014 12:41 am
by Mario_r4
.