xai*_*aid -2 windows delphi dll procedure delphi-xe2
所以,我试图从Delphi XE2中的DLL调用一个过程.但程序不会分配.
我试过在互联网上找到几个例子.正在按预期加载DLL.导出正确写入.
一切似乎都很好,但仍然没有成功.
怎么了?
我的代码如下
type
TStarter = procedure; stdcall;
...
fTheHookStart: TStarter;
...
procedure TForm1.LoadHookDLL;
begin
LogLn('Keyboard Hook: Loading...');
// Load the library
DLLHandle := LoadLibrary('thehookdll.DLL');
// If succesful ...
if Handle <> 0 then
begin
LogLn('Keyboard Hook: DLL load OK!');
LogLn('Keyboard Hook: assigning procedure ...');
fTheHookStart := TStarter(GetProcAddress(DLLHandle, 'StartTheHook'));
if @fTheHookStart <> nil then
begin
LogLn('Keyboard Hook: procedure assignment OK!');
LogLn('Keyboard Hook: Starting...');
fTheHookStart;
end
else
begin
LogLn('Keyboard Hook: procedure assignment FAIL!');
FreeLibrary(DLLHandle);
if Handle <> 0 then LogLn('Keyboard Hook: DLL free OK!') else LogLn('Keyboard Hook: DLL free FAIL!');
end;
end
else
begin
LogLn('Keyboard Hook: DLL load FAIL!');
end;
end;
Run Code Online (Sandbox Code Playgroud)
一个错误是你在加载dll时分配DllHandle,但是你检查Handle <>是否为nil.句柄实际上是你的表单句柄,其中的句子不是零.如果加载成功则无关紧要,但如果失败,则会出现错误的日志记录.由于您还有一些日志功能,日志显示什么?
| 归档时间: |
|
| 查看次数: |
347 次 |
| 最近记录: |