有DLL文件:KLOGIN.DLLVB语句如下:Set AAAKLogin of CreatObject(KLogin.ClsLogin);
然后就可以调用各种函数了:AAAKLogin.函数名但在DELPHI里该如何调用这个DLL并使用其中的函数?用显示调用,我只做到这一步:LibHandle:=LoadLibrary('KLogin'),且LibHandle<>0
然后就可以调用各种函数了:AAAKLogin.函数名但在DELPHI里该如何调用这个DLL并使用其中的函数?用显示调用,我只做到这一步:LibHandle:=LoadLibrary('KLogin'),且LibHandle<>0
解决方案 »
- 明天,Delphi要一统江湖了,其它的Java C++全都消失了,你们可能不信,但是我信!
- 请教,怎样理解消息记录类型(TMessage)
- SQL查询两张表的数据表的问题,高手请进来帮帮忙呀~!!!!!!!!!!!!
- 我如果在厦门工资应该要要求多少呢?找工作时要注意些什么问题?,请有经验的前辈进入谈谈
- SOS!几个基本概念
- 有关MDI窗口的问题,求助!
- 请问怎样创建ActiveX控件的接口属性?????????????????????????????????????????
- serversocket 和clientsocket的问题
- TbitMap实例能否装入Jpg文件,如果可以,怎样装入。
- 有人用delphi开发过动态网站吗
- Delphi调用VB写的exe程序,能不能象模态调用一个对话框一样,?也就是说主窗体此时什么也不能做,只有等这个exe关闭掉,才继续操作?
- 哪位可以介绍几个好的视频开发方面的控件!
TF1 = function(I: Integer): Integer;//根据函数原型更改一下var
LibHandle: THandle;
F1: TF1;
begin
LibHandle :=LoadLibrary('KLOGIN.DLL');
if LibHandle <> 0 then
begin
@F1 := GetProcAddress(LibHandle, PChar('FunctionName'));
if @F1 <> nil then F1();
FreeLibrary(LibHandle);
end;
end;
if LibHandle <> 0 then
begin
///
end;
FreeLibrary(LibHandle);
我照你的方法做了,编译可以通过,但@t的结果始终是nil,语句如下:
Type
TF1 = Procedure;
.
.
var LibHandle:Thandle;
t:TF1;
.
.
LibHandle:=LoadLibrary('MyFirstLib.dll');
if LibHandle<>0 then begin
@t:=GetProcAddress(LibHandle,pchar('MyFirstDLL'));
if @t<>nil then t
else showmessage('Error');
end;我的DLL里的过程巨简单,就一个showmessage语句而已;
上面的语句执行后结果总为Error
TF1 = Procedure;//这边的定义是否和DLL文件中的一致?@t:=GetProcAddress(LibHandle,pchar('MyFirstDLL'));//名称MyFirstDLL是否和DLL文件中导出的名称(exports F1 name 'F1';)一样?区分大小写PS、你可以捕捉一下异常: if @t<>nil then t else raise Exception.Create(IntToStr(GetLastError));