function hi_32 hi_sdk_Init():THandle;stdcall;external'HISDK.dll';
错误是        Function needs result typehi_32 hi_sdk_Init()是初始化函数
result values   HI_success表示成功    HI_failure表示失败要怎么写这个返回值
谢谢      

解决方案 »

  1.   

    function hi_32 hi_sdk_Init():Integer;stdcall;external'HISDK.dll';或者
    function hi_32 hi_sdk_Init():Cardinal;stdcall;external'HISDK.dll';
      

  2.   

    是静态调用的type
      TForm1 = class(TForm)
        Button1: TButton;
        Image1: TImage;
        GroupBox1: TGroupBox;
        procedure Button1Click(Sender: TObject);  private
        { Private declarations }
      public
        { Public declarations }
      end;
        function hi_sdk_Init(husb:THandle):Integer;stdcall;external'HISDK.dll';
    var
      Form1: TForm1;
      sdk_Init:THandle;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
    sdk_Init:=hi_sdk_Init();
    end;end.
    sdk_Init:=hi_sdk_Init();错误Not enough actual parameters  要怎么写啊   这个sdk给的不是很详细  第一次写不太会  谢谢
      

  3.   

    这里是这么定义的:
    function hi_sdk_Init(husb:THandle):Integer;stdcall;external'HISDK.dll';那么调用的时候应该这样:
    procedure TForm1.Button1Click(Sender: TObject);
    var
      h: THandle;
    begin
      sdk_Init := hi_sdk_Init(h);
    end;
      

  4.   

    试试这样:type
      TForm1 = class(TForm)
      Button1: TButton;
      Image1: TImage;
      GroupBox1: TGroupBox;
      procedure Button1Click(Sender: TObject);  private
      { Private declarations }
      public
      { Public declarations }
      end;
      function hi_sdk_Init(var husb: THandle): Integer; stdcall; external'HISDK.dll'; //<--注意这里,添加一个var标识
    var
      Form1: TForm1;
      sdk_Init:THandle;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);
    begin
      hi_sdk_Init(sdk_Init); //<--注意这里,这样调用
    end;end.