delphi如何调用vb编写的dll? ( 积分: 100 )

  • 主题发起人 主题发起人 goodjsh
  • 开始时间 开始时间
G

goodjsh

Unregistered / Unconfirmed
GUEST, unregistred user!
那位做过的,请指点,很急呀,高分送上,谢谢
 
dll是通用的,谁写的都是一样的调用
 
一个加密函数的例子
function TDMActMgr.PwdEncrypt(const Pwd: shortString): string;
var
DLLAPLHandle:THandle;
LoginEncrypt:TEncrypt;
DLLName:Pchar;
begin
DLLName:=PChar('C:/Project/DLLAPL.dll');
Result:='';
DLLAPLHandle:=LoadLibrary(DllName);
try
if DLLAPLHandle=0 then
raise EDLLLoadError.Create('DLLAPL.DLL载入错误');

@LoginEncrypt:=GetProcAddress(DLLAPLHandle,'Encrypt');
if @LoginEncrypt=nil then
Raise EDLLLoadError.Create('调用了DLLAPL.DLL中不存在的函数')
else
Result:=LoginEncrypt(Pwd,20078);
finally
FreeLibrary(DLLAPLHandle);
end;
end;
 
这样行就不用问了,VB写的DLL是不能这样调用
 
VB直接生成的是ActiveX dll, 经过改造,也能生成标准的Windows DLL。 不知道你说的VB生成的dll是哪一类?

1. 标准的Windows DLL, delphi的例子很多。 无需等VB生成的dll。

2. 如果是vb生成的active x dll, 那么: 首先注册VB的ActiveX DLL,然后在Delphi的Project菜单上选择import Type Library,这样Delphi列出所有ActiveX DLL,选择你的ActiveX DLL,然后Delphi会生成一个类供调用。
 
to:maikee1978,应该是activex dll,我用普通的方法调用不成功,第二种方法你可以说得详细一点吗?
 

Similar threads

后退
顶部