Текущий архив: 2009.01.18;
Скачать: CL | DM;
Вниз
Вопрос к тем, кто читал книгу Агурова "Практика программирования Найти похожие ветки
← →
mml © (2008-11-17 08:43) [0]К сожалению не удается скомпилировать примеры в Delphi, которые прилагались к книге на диске.
Готовые ЕХЕшники с диска работают нормально.
Привожу пошагово мои действия.
1.Копирую с диска файлы из каталога \AT89-HID-int1\HIDtest в рабочий каталог. Запускаю Delphi. Открываю проект Projeсt1.
Нажимаю RUN. Выдается сообщение:
[Fatal Error] Unit1.pas(27): File not found: "SetupApi.dcu".
2.Копирую с диска файл SetupApi.pas из каталога \Enumerator.Delphi в рабочий каталог.
Нажимаю RUN. Выдается сообщение:
[Fatal Error] SetupApi.pas(6024): File not found: "ModuleLoader.dcu".
3.Копирую с диска файл ModuleLoader.pas из каталога \Enumerator.Delphi в рабочий каталог.
Нажимаю RUN. Выдается сообщение:
[Fatal Error] Unit1.pas(27): File not found: "Hid.dcu".
4.В рабочем каталоге переименовываю #hid.pas в hid.pas.
Нажимаю RUN. Все компилируется, запускается приложение.
5.Как только нажимаю на кнопку приложения "Читать",
выполнение приложения прекращается, выдается сообщение:
Project Project1.exe raised exeption class EAccessViolation at address 00000000.Read of address 00000000".
Process stopped. Use Step or Run to continue.
В отладчике вижу, что проблема возникает при вызове процедуры HidD_GetHidGuid(HidGuid);.
Напоминаю, что если запускать готовый ЕХЕшник с диска, то он нормально работает. Нормально читает дескриптор с моего USB девайса.
Как решить проблему? Смысл решетки перед hid.pas?
Пробовал на Delphi6 и на Delphi7, под операциокой Windows2000 и Windows XP.
Версия hid.dll под XP 5.1.2600.0.
Версия hid.dll под W2000 5.0.2195.6655.
Заранее спасибо.
← →
AIK © (2008-11-17 08:56) [1]
> 4.В рабочем каталоге переименовываю #hid.pas в hid.pas.Нажимаю
может в Hid.dcu ?
← →
mml © (2008-11-17 09:22) [2]Может? Или так надо делать?
Дело в том, что я плохо знаю Delphi и не понимаю решетка имеет определенный смысл или нет.
После того, как я убрал решетку компилятор сам сделал hid.dcu.
← →
KilkernnyCat (2008-11-17 11:12) [3]Как-то раз ее назвали "Книжка с ошибками"
← →
Anatoly Podgoretsky © (2008-11-17 12:22) [4]> mml (17.11.2008 9:22:02) [2]
Не имеет определенного смысла, но использование решетки всегда путь к труднообнаруживаемым проблемам.
← →
Dimka Maslov © (2008-11-17 15:55) [5]Как то раз в одном журнале я прочёл статью "Пишем упаковщик". Если точно воспроизвести приведённый текст программы, то действительно получается упаковщик. Проблема в том, что распакованный потом файл не был идентичен оригинальному.
Отсюда мораль: если в книге/журнале приведён лишь текст, а не описание принципов работы - будь готов, что это не работает.
← →
mml © (2008-11-19 08:05) [6]Проблему удалось решить дописав код:
procedure TForm1.FormCreate(Sender: TObject);
begin
LoadHid;
LoadSetupApi;
end;
procedure TForm1.FormDestroy(Sender: TObject);
begin
UnloadHid;
UnloadSetupApi;
end;
Страницы: 1 вся ветка
Текущий архив: 2009.01.18;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.005 c