Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Ошибка в DLL при помещении её в HKLM->....->AppInit_DLLs [D6, WinXP]


Ortodocs ©   (2006-05-22 23:41:00) 

Моя dll-ка написана на Delphi 6.0. Необходимо чтоб она загружалась при запуске сиcтемы, и поэтому прописываю в ручную её в реестре по пути HKLM->SOFTWARE->Microsoft->WindowsNT->CurrentVersion->Windows->ключ AppInit_DLLs c параметром С:\dll.dll. После запуска системы и во время работы начинают выскакивать по 2 ошибки от каждого приложения, которое грузится в данный момент. Хотя dll-ка всё равно выполнят свои обязанности, возложенные мною на неё. Возможно это и было бы связано с тем, что я не правильно написал её код, но даже при создании новой dll-ки через File->New->Other->Dll Wizard в Delphi, не изменяя её:

library dll;
uses
SysUtils,
Classes;
{$R *.res}
begin
end.

всё равно выскакивают по 2 ошибки от каждой программы, такие как:

инструкция по адресу "0x7c918fea" обратилась к памяти по адресу "0x00000010".
Память не может быть "written"

инструкция по адресу "0x003a951d" обратилась к памяти по адресу "0x0000000c".
Память не может быть "written"

При этом мною замечено, что первая ошибка абсолютно одинакова для всех программ, а во второй меняется лишь адрес инструкции, но для каждой программы он постоянен.
Но если я буду загружать свою dll через LoadLibrary, то ошибок нет.
Так же не возникает ошибок, если новая dll была создана в C++Builder.
Если кто знает, как должна быть написана dll, чтоб она работала в моём случае, прошу ответить. Буду признателен.


Leonid Troyanovsky   (2006-05-23 18:37:00) [1]


> Игорь Шевченко ©   (23.05.06 10:14) [2]

> Откажись от Classes и Sysutils, например


& Variants etc.

--
Regards, LVT.


Eraser   (2006-05-23 10:17:00) [2]


> Ortodocs   (22.05.06 23:41)

ловушки и MMF используются?


Игорь Шевченко   (2006-05-23 10:14:00) [3]

Возможно это связано с тем, что к моменту инициализации DLL еще не до конца проинициализирована user32.dll, а всякие там SysUtils при своей инициализации обращаются к функциям user32.
Откажись от Classes и Sysutils, например


Сергей М.   (2006-05-23 08:14:00) [4]

DLL собрана с ран-тайм пакетами ?


Наверх

Титульная страница Поиск, карта сайта Написать письмо