有一个DLL,在VB中是这样声明的:
Public NetDogPassword As Long
Public NetDogResult As Long
Public NetDogData As String
Public NetDogBytes As Long
Public NetDogCascade As LongPublic Declare Function UpdateModule Lib "RCClientModulesUpdate.dll" (ByVal pStr As String, ByVal DogPassword As Long, ByVal DogCascade As Byte, ByVal pLen As Long) As Long调用:
Public NetDogPassword As Long
Public NetDogResult As Long
Public NetDogData As String
Public NetDogBytes As Long
Public NetDogCascade As Long
DogPassword = 0
DogCascade = 0
NetDogData = 'abcdefg'
NetDogBytes = Len('abcdefg')
NetDogResult = UpdateModule(NetDogData, DogPassword, DogCascade, NetDogBytes)
如果在Delphi中调用,应该怎么写参数,谢谢!
Public NetDogPassword As Long
Public NetDogResult As Long
Public NetDogData As String
Public NetDogBytes As Long
Public NetDogCascade As LongPublic Declare Function UpdateModule Lib "RCClientModulesUpdate.dll" (ByVal pStr As String, ByVal DogPassword As Long, ByVal DogCascade As Byte, ByVal pLen As Long) As Long调用:
Public NetDogPassword As Long
Public NetDogResult As Long
Public NetDogData As String
Public NetDogBytes As Long
Public NetDogCascade As Long
DogPassword = 0
DogCascade = 0
NetDogData = 'abcdefg'
NetDogBytes = Len('abcdefg')
NetDogResult = UpdateModule(NetDogData, DogPassword, DogCascade, NetDogBytes)
如果在Delphi中调用,应该怎么写参数,谢谢!
在类里,有相应的作用域,不说了你上面的都是公共变量或函数,所以定义在接口区(interface)
unit Unit1;interfaceuses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs;type
TForm1 = class(TForm)
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;var
Form1: TForm1;
//以下变量定义在下面
NetDogPassword :integer;
NetDogResult :integer;
NetDogData :String;
NetDogBytes :Byte;
NetDogCascade :integer;
//dll中的函数声明
Function UpdateModule(pStr:String;DogPassword:integer; DogCascade:Byte; pLen:integer):integer;stdcall; external 'RCClientModulesUpdate.dll ';implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject); //赋值和调用必须在过程,本例在窗口事件中
begin
NetDogPassword := 0;
NetDogCascade := 0;
NetDogData := 'abcdefg';
NetDogBytes := Length( 'abcdefg');
NetDogResult := UpdateModule(NetDogData, NetDogPassword, NetDogCascade, NetDogBytes);end;end.