有一个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中调用,应该怎么写参数,谢谢!

解决方案 »

  1.   

    在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.
      

  2.   

    楼主还是要去了解一下Delphi的基础的。