Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 24.01.2013, 21:13   #1
Alexandr555
Форумчанин
 
Регистрация: 23.03.2011
Сообщений: 310
По умолчанию SetTimer

Не пойму как использовать таймер из консоли.
http://www.vsokovikov.narod.ru/New_M...eate_timer.htm
нашел но прводят только куски кода,
не понятно как получить hwnd
Не покажете ли простой код из консоли как её вызывать?
Alexandr555 вне форума Ответить с цитированием
Старый 24.01.2013, 21:20   #2
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Для SetTimer хендл окна не обязателен, а вот наличие главного цикла - да.
#include <windows.h>
Код:
int main ()
{
	SetTimer(NULL, 0, 1000, NULL);
	MSG msg;
	while (GetMessage(&msg, NULL, 0, 0))
	{
		if (msg.message == WM_TIMER)
			OutputDebugString("TADAM\n");
	}
}

Последний раз редактировалось EUGY; 24.01.2013 в 21:29.
EUGY вне форума Ответить с цитированием
Старый 24.01.2013, 21:21   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В консоли таймер не рекомендуется.
Используй доппотоки (читай про CreateThread и _beginthread)
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.01.2013, 21:42   #4
Alexandr555
Форумчанин
 
Регистрация: 23.03.2011
Сообщений: 310
По умолчанию

и там со sleep?
Alexandr555 вне форума Ответить с цитированием
Старый 24.01.2013, 21:45   #5
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Да. Обычно именно Sleep() применяют, хотя есть и другие выкрутасы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 24.01.2013, 22:26   #6
Alexandr555
Форумчанин
 
Регистрация: 23.03.2011
Сообщений: 310
По умолчанию

Код:
 _beginthread(Thread, 0, NULL );
....
void Thread(void* pParams )
  { 
	  Sleep(10000);
	  cout <<123; 
	  _endthread();
  }
Вроде разобрался, только пара вопросов, как передать в поток несколько параметров, которые там будут локальными... и есть ли функция с синхронизацией основного потока или пользоваться критической секцией?
Alexandr555 вне форума Ответить с цитированием
Старый 24.01.2013, 22:44   #7
waleri
Старожил
 
Регистрация: 13.07.2012
Сообщений: 6,330
По умолчанию

Цитата:
Сообщение от Stilet Посмотреть сообщение
В консоли таймер не рекомендуется.
Можно поподробней?
waleri вне форума Ответить с цитированием
Старый 24.01.2013, 22:48   #8
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

1 Упаковать параметры в структуру и передать ее адрес.
2 Любые обекты синхронизации.
EUGY вне форума Ответить с цитированием
Старый 24.01.2013, 22:57   #9
Alexandr555
Форумчанин
 
Регистрация: 23.03.2011
Сообщений: 310
По умолчанию

Код:
ItP bull;
_beginthread(Thread, 0,bull);
Цитата:
_beginthread: невозможно преобразовать параметр 3 из "ItP" в "void *"
ну и как передать и использовать затем?
Alexandr555 вне форума Ответить с цитированием
Старый 24.01.2013, 23:05   #10
EUGY
Форумчанин
 
Аватар для EUGY
 
Регистрация: 11.07.2010
Сообщений: 914
По умолчанию

Вы знаете, что такое адрес?
EUGY вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вызов SetTimer в чужих окнах BLACK_RAIN Win Api 38 06.05.2012 14:40
Таймер SetTimer и глюки с ним Jugger Win Api 2 09.03.2012 20:21
Settimer в winx64 не работает, рушит Excel?! budda999 Microsoft Office Excel 9 07.01.2012 13:43
SetTimer, KillTimer NeiL Win Api 5 05.03.2008 07:37