问问关于DLL的用法,分可以再加哦。
写程序这么久了,但是我一直没用过DLL,很想知道DLL怎么个用法?谁来给我讲一讲?
比如说吧:我写好一个名叫:Addit.dll的文件,里边有一个函数:AddTest(i,j:integer):Integer;完成加两个数的功能,那么我在一个工程文件里该怎样引用呢?
问题点数:50、回复次数:6Top
1 楼DIABL0(电脑破坏神)回复于 2001-11-27 21:18:30 得分 5
function AddTest(i,j:integer):integer;stdcall;Top
2 楼cul(恐龙++)回复于 2001-11-27 21:20:37 得分 0
DIABL0(电脑破坏神),
stdcall;是什么来的?可以这样直接写函数名调用的吗?不用引用什么的一下吗?Top
3 楼zwjchina(蒲石)回复于 2001-11-27 21:27:19 得分 10
unit unit1
interface
function AddTest(i,j:integer):integer;stdcall;
...
implementation
function AddTest;external 'Addit.dll' name 'AddText';
end.
然后引用这个单元就可以随意使用AddTest了!Top
4 楼taxi(当时明月在,曾照彩云归)回复于 2001-11-27 21:43:54 得分 15
type
TAddTest = function(i,j:integer):Integer;
procedure TMainForm.XXXXXX
var
AddTest: TAddTest;
DllHandle: integer;
begin
DllHandle := LoadLibrary(Pchar('Addit.dll'));
if DllHandle = 0 then
raise Exception.Create('装入dll失败!')
else begin
AddTest := GetProcAddress(DllHandle, PChar('AddTest'));
if @AddTest <> nil then
ShowMessage(IntToStr(AddTest(1, 2)))
else
raise Exception.Create('获取函数失败!');
end;
FreeLibrary(DllHandle);
edn;Top
5 楼agui(阿贵: 高级图形用户界面)回复于 2001-11-27 22:16:31 得分 10
你的Addit.dll中的函数必须是可以回调的和已经引出(export)的。
如果用C/C++写的,必须用WINAPI修饰,如果是用Delphi写的,必须加上stdcall修饰及用
exports声明是引出的。看看帮助。
例:
function AddTest(i,j:integer):integer;stdcall;
exports
AddTest;
exports
Top
6 楼hahafan(注意!此人前途迷茫)回复于 2001-11-27 22:46:49 得分 10
可以做个接口单元
然后在程序中uses这个接口单元来调用程序,delphi调用API就是用的这方法
可看看delphi5.0开发指南上面说的很详细Top




