动态调用DLL中的函数
typedef DWORD (WINAPI Fun) (DWORD,DWORD);
HINSTANCE hkDll=LoadLibrary("KERNEL32.DLL");
Fun*RegisterServiceProcess=(Fun*)::GetProcAddress(hkDll,"RegisterServiceProcess");
(*RegisterServiceProcess)(NULL,1);
FreeLibrary(hkDll);
===============
var
H: HWnd;
p: procedure(Handle: THandle; Path: PChar); stdcall;
begin
H := LoadLibrary(PChar('shdocvw.dll'));
if H <> 0 then
begin
p := GetProcAddress(H, PChar('DoOrganizeFavDlg'));
if Assigned(p) then p(Application.Handle, PChar(favpath));
end;
FreeLibrary(h);
end;
需要注意的是这句 GetProcAddress(H,Pchar('DoOrganizeFavDlg')); 这个方法名是区分大小写的
如果是静态调用则是
function getMemoText():pchar;stdcall;external 'p.dll';
方法名 也要区分大小写,但在程序里调用这个方法时就不再区分大小写了