Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 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.48 MB
Время: 0.015 c
2-1228662640
алгоритм
2008-12-07 18:10
2009.01.18
подстакажите алгоритм нахождения точки


15-1226928359
Andryk
2008-11-17 16:25
2009.01.18
Вот подумал, мож тут кому надо?


2-1228647187
aglar
2008-12-07 13:53
2009.01.18
Правильно ли составлен запрос SQL?


2-1228144125
St1m
2008-12-01 18:08
2009.01.18
Наследник TForm


2-1228223777
alexeis
2008-12-02 16:16
2009.01.18
Поиск в динамически создаваемом TreeView