![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Выгрузка dll [WinXP]
Wolffgang © (2004-10-28 16:41:00)Здравствуйте.
Сделал длл с формой, она создается но не показывается. При перезагрузке или если убить процесс через менеджер вываливается runtime error code 217, немного позже - system error code 1400, invalid window handle.
В onclose формы:
action:=cafree;
Form1:=nil;
код длл:
library mydll;
uses
Windows,
forms,
unit1 in unit1.pas',
unit2 in 'unit2.pas';
exports
Proc1;
var
hFileMappingObject: THandle;
fInit: Boolean;
{----------------------------\
| |
| DLL_PROCESS_DETACH |
| |
\----------------------------}
procedure DLLMain(Reason: Integer);
begin
if Reason = DLL_PROCESS_DETACH then
begin
UnmapViewOfFile(lpvMem);
CloseHandle(hFileMappingObject);
end;
end;
{----------------------------\
| |
| DLL_PROCESS_ATTACH |
| |
\----------------------------}
begin
DLLProc := @DLLMain;
hFileMappingObject := CreateFileMapping(
THandle($FFFFFFFF),
nil,
PAGE_READWRITE,
0,
4096,
'MyDllShareMem'
);
if hFileMappingObject = INVALID_HANDLE_VALUE then
begin
ExitCode := 1;
Exit;
end;
fInit := GetLastError() <> ERROR_ALREADY_EXISTS;
lpvMem := MapViewOfFile(hFileMappingObject,FILE_MAP_WRITE,0,0,0);
if lpvMem = nil then
begin
CloseHandle(hFileMappingObject);
ExitCode := 1;
Exit;
end;
if fInit then
FillChar(lpvMem, PSIZE, #0);
end.
Digitman (2004-10-29 16:11:00) [1]
> hook и yandex
и чего ты тычешь здесь эти "страшные слова" ?
Библия, Коран, Талмут и иже с ними - тоже претендуют на истины, однако каждый трактует эти "истины" по-своему, набивает кучу шишек, а потом пеняет на "первоисточник", мол, а какого хрена тогда там это написано ..
> неужели никто не заметил ошибку, если она есть?
да какие там "ошибки" ?
в приведенном тобой коде нет даже намека на создание/разрушение хоть одной формы .. предлагаешь их, ошибки, мне самому выдумать ? или как ?
и еще вопрос ...
ты случаем не для глоб.хука эту ДЛЛ сотворяешь ?
если так, то ExitCode = 1 - это мертвому припарка.
Wolffgang (2004-10-29 16:00:00) [2]>галиматья какая-то ...
hook и yandex
http://delphi.softclub.net/read/akdelfaq.html
и еще куча страниц с такими же исходниками
неужели никто не заметил ошибку, если она есть?
> наводит на с ташныеподозрения.
деисвитлнно :)
оставим поэзию поэтам.
вопрос: можете ли вы подсказать возможность корректной выгрузки формы? думаю, я ошибаюсь именно в этом моменте, т.к. если ее не создавать то исключения не возникают.
Digitman (2004-10-28 17:32:00) [3]уже вот это
ExitCode := 1;
Exit;
наводит на сташные подозрения.
Wolffgang (2004-10-28 17:25:00) [4]что конкретно не понятно?
Digitman (2004-10-28 17:23:00) [5]все равно галиматья
Wolffgang (2004-10-28 17:15:00) [6]никакая это не галиматья...
это рабочий код длл-ки кейлоггера и все в нем нормально, все работает.
единственная проблема - при уничтожении процесса, как я понимаю, возникает ошибка при уничтожении формы.
Digitman (2004-10-28 17:01:00) [7]галиматья какая-то ...