Добрый день, Alex! Все что нужно http://www.bloodshed.net/dev/devcpp.html Успехов Ответ отправлен: 28.11.2003, 15:55 Отправитель: Yuri Gordienko Отвечает Avl2k
Здравствуйте, Alex! Да, например, Borland C++ 3.1. Конечно, до стандарта там местами далеко, однако для обучения вполне хватит. Качать здесь. С уважением, Avl2k. Ответ отправлен: 28.11.2003, 14:20 Отправитель: Avl2k Отвечает chebv
Приветствую Вас, Alex! посмотри на microsoft.com :) Ответ отправлен: 28.11.2003, 15:05 Отправитель: chebv Отвечает Phenix
Добрый день, Alex! Что ты имеешь ввиду под словами - ПРОГРАМНАЯ СРЕДА. - среду разработки? - обучающие программы? - или что-то еще? Если среду разработки, то что конкретно тебя интересует: - программировани под ДОС - программирование под Windows - хочешь изучить С++ Bilder - или же Visual C++ - или Borland C++ Ставь вопросы поконкретней. Ответ отправлен: 29.11.2003, 00:55 Отправитель: Phenix
Вопрос № 1274
Hi Эксперты! Вот пробую программировать параллельный порт (а именно ЖКД подключенный к нему). Достал исходники проги работы с экраном, но на VB. Переписал под c++builder. Работает, но только в режиме отладки. Прчину нашел: почему-то задержка переписанная мною из ВБ и С не работает хотя должна (задержка нужна для того чтобы контроллер ЖКД успел считать данные как я понял) В приложение Код на ВБ и как я его же написал на С. Принимаются предложения как организовать задержку (переделать чтобы работало или новый вариант), которая не тормозила бы работу компьютера в целом.
Доброе время суток, NewBot! Очевидно, что не работает :) Во-первых, нельзя при вычислениях отбрасывать старшие части чисел count0, count1 и frequency. Например, для десятичной системы (82 - 16) / 12 = 5.5, а (2 - 6) / 2 = -2. Во-вторых, по правилам C при делении целого числа на целое получается целое число, остаток отбрасывается. В-общем, правильно будет double howlong; do { QueryPerformanceCounter (&count1); howlong = double(c2.QuadPart - c1.QuadPart) / f.QuadPart; } while( howlong <= 0.00005 ); Причем здесь можно вообще обойтись без деления, если умножить frequency на 0.00005. LONGLONG wait_int = 0.00005 * frequency.QuadPart; do { QueryPerformanceCounter( &count1 ); } while( count1.QuadPart - count0.QuadPart <= wait_int ); Хотя цикл не лучший способ организовывать задержки, потому
что впустую тратится процессорное время. Лучше будет использовать waitable timers, например, так HANDLE hTimer = CreateWaitableTimer(NULL, TRUE, NULL); _ASSERT( hTimer != NULL ); LARGE_INTEGER liDueTime; liDueTime.QuadPart= -500; // 0.00005 сек (500 = 0.00005 * 10E7) for( int i = 0; i < 10; ++i ) { printf( "Just wait...%d\n", i ); // Set a timer to wait for 10 seconds. if (!SetWaitableTimer( hTimer, &liDueTime, 0, NULL, NULL, 0)) _ASSERT( false );
if (WaitForSingleObject(hTimer, INFINITE) != WAIT_OBJECT_0) _ASSERT( false ); } ::CloseHandle( hTimer ); С уважением, Avl2k.
Ответ отправлен: 28.11.2003, 18:12 Отправитель: Avl2k
Форма отправки вопроса
Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+
или отправлять вопросы с сайта по адресу:
http://rusfaq.ru/cgi-bin/Message.cgi.