![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Ошибка в 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 собрана с ран-тайм пакетами ?