以下是《Delphi5 开发人员指南》书中第9章DLL的例子(246页):
//DLL文件:
library DLLEntryLib;
uses
SysUtils,windows,dialogs,classes;
procedure DLLEntryPoint(dwReason:DWord);
begin
case dwReason of
DLL_PROCESS_ATTACH:ShowMessage('Attaching to Dll');
DLL_PROCESS_DETACH:ShowMessage('Detaching from process');
DLL_THREAD_ATTACH:messagebeep(0);
DLL_THREAD_DETACH:messagebeep(0);
end;
end;
begin
DllProc:=@dllEntryPoint;
DLLEntryPoint(DLL_PROCESS_ATTACH);
end.以上从网上搜索的,为什么 DLLEntryPoint(DLL_PROCESS_ATTACH);
在D7 + Win2K 环境下编译通不过???
我想初始化一些东西,然后进程退出的时候释放一些东西?不能这样吗?难道只能写函数让调用者一步一步写,如果忘了就只好让它留在内存中了!?
//DLL文件:
library DLLEntryLib;
uses
SysUtils,windows,dialogs,classes;
procedure DLLEntryPoint(dwReason:DWord);
begin
case dwReason of
DLL_PROCESS_ATTACH:ShowMessage('Attaching to Dll');
DLL_PROCESS_DETACH:ShowMessage('Detaching from process');
DLL_THREAD_ATTACH:messagebeep(0);
DLL_THREAD_DETACH:messagebeep(0);
end;
end;
begin
DllProc:=@dllEntryPoint;
DLLEntryPoint(DLL_PROCESS_ATTACH);
end.以上从网上搜索的,为什么 DLLEntryPoint(DLL_PROCESS_ATTACH);
在D7 + Win2K 环境下编译通不过???
我想初始化一些东西,然后进程退出的时候释放一些东西?不能这样吗?难道只能写函数让调用者一步一步写,如果忘了就只好让它留在内存中了!?
看来 Delphi 像不合适用来做 Dll ,不能在里面用对象吗?
.......
begin
DllProc:=@dllEntryPoint;//取得回调函数入口地址
DLLEntryPoint(DLL_PROCESS_ATTACH);//手动调用回调函数
//error:Undeclared identifier: 'DLLEntryPoint'没有申明的标示符,因为你没有定义过程dllentrypoint,将全局函数定义成procedure DLLEntryPoint(dwReason:DWord);即可end.