tz-lom @ 17.01.08 22:22:19
Arigato за классное предложение собрать своими руками- похоже ты не собирал,ибо такое чудо гермафродитизма собирается крайне коряво
Не увидел существенных проблем во время сборки.
tz-lom @ 17.01.08 22:22:19
на самом деле преимущество только одно-некоторые не знают С
Приведи ссылку на бесплатный компилятор C++ для КПК, работающий под Linux.
Считаю, что спорить, какой язык круче - это детский сад. Каждый выбирает то, что ему по тем или иным причинам подходит лучше. Мне знание Си ни как не мешало отдать предпочтение языку Паскаль.
Следующая партия вопросов:
Вопрос: При помощи какой команды можно аварийно завершить программу (вроде die в php)?
Ответ: Если нужно прекратить выполнение программы, можно использовать следующую команду:
В качестве параметра передается код завершения (0 соответствует штатному завершению программы, можно передать и любое другое число, характеризующее код ошибки).
Если перед завершением программы необходимо выдать сообщение об ошибке, проще написать специальную процедуру. Например:
procedure Die (Mes: widestring);
begin
MessageBox (0, PWideChar (Mes), 'Fatal Error', MB_OK or MB_ICONHAND or MB_SYSTEMMODAL or MB_TOPMOST);
ExitProcess (1);
end; {proc Die}
Вопрос: Как замерить время выполнения какого-либо куска программы?
Ответ: Есть функция GetTickCount, которая возвращает число миллисекунд, прошедших с момента последней перезагрузки Windows.
Для замера времени можно поступить так:
var T0: Integer;
. . .
T0 := GetTickCount;
. . . // Кусок программы, время выполнения которого нужно определить
MessageBox (0, PWideChar (IntToStr (GetTickCount - T0)), 'Time', 0);
Вопрос: Как воспроизвести стандартные звуки Windows?
Ответ: Для этого есть специальная процедура:
Значение параметра Type определяет, какой из звуков будет воспроизведен. Возможны следующие значения:
MB_ICONERROR - звук ошибки;
MB_OK - стандартный звук.
Для проигрывания стандартного звука можно так же воспользоваться процедурой Beep.
Вопрос: Как воспроизвести WAV-файл?
Ответ: Для этого нужно определить функцию PlaySound следующим образом:
const SND_SYNC = $0000;
SND_ASYNC = $0001;
SND_NODEFAULT = $0002;
SND_LOOP = $0008;
SND_NOSTOP = $0010;
function PlaySound (pszSound: PWideChar; hmod: HMODULE; fdwSound: DWORD): BOOL; external 'coredll' name 'PlaySoundW';
Для начала воспроизведения звука нужно вызвать PlaySound, передав в качестве первого параметра имя WAV-файла (необходимо указывать полный путь), в качестве второго - 0 и в качестве третьего - флаг воспроизведения звука. В качестве флага могут выступать константы:
SND_SYNC - синхронное воспроизведение, программа прерывает свою работу на время проигрывания звука;
SND_ASYNC - асинхронное воспроизведение, программа продолжает работать во время проигрывания звука;
SND_LOOP or SND_ASYNC - воспроизведение постоянно повторяется;
SND_NODEFAULT - добавляется к описанным выше константам операцией or и служит для того, что бы в случае отсутствия указанного WAV-файла не воспроизводился стандартный звук Windows;
SND_NOSTOP - так же добавляется при помощи or и нужна для того, что бы не прерывать текущее воспроизведение, т.е. если в данный момент уже играет какой-либо звук, вызов PlaySound с таким флагом не приведет к остановки играющего звука и запуску нового.
Пример:
PlaySound ('Windows\Alarm1.wav', 0, SND_ASYNC);
Будет проигран указанный звук. Если данного файла нет, то будет воспроизведен стандартный звук.
Для того, что бы остановить воспроизведение повторяющегося звука, нужно сделать такой вызов:
PlaySound (nil, 0, SND_ASYNC);