感谢各位,但还是不行,别人给的动态库是这样的:int FunName(char* InData, char* OutData)
indata是我传给动态库的
Outdata是动态库给我返回的我在delphi中的定义是这样的:
导入:function FunName(InData:PChar;OutData:PChar):DWORD;stdcall;external '动态库文件名.dll';
调用:
function myFun():boolean;
var
  InData:array[1..100] of char;
  OutData:array[1..100] of char;
  rtn:integer;
begin
  rtn=FunName(InData,OutData);  //这句提示错误
  .....
end;可是现在编译都过不去,提示array和Pansichar类型不兼容
再次请教到底该怎么调用呢?
万分感谢!!!

解决方案 »

  1.   

    rtn=FunName(@InData[0],@OutData[0]);  //这句提示错误
      

  2.   

    var 
      InData:pchar; 
      OutData:pchar; 
      rtn:integer; 
    每日一贴.
      

  3.   

    呵呵.找到了.   改:导入:function FunName(InData:PChar;var OutData:PChar):DWORD;stdcall;external '动态库文件名.dll'; 
    var 相当于  C++中  &,取地址符号.
      

  4.   

    补充以下,调用方式应该是什么啊?
    给的动态库文档也没写是cdecl还是stdcall
      

  5.   

      InData:array[1..100] of char; 
      OutData:array[1..100] of char; 
     
    array[0..99] of char 就可以了
      

  6.   

    声明中参数改成这样(Indata:pchar;var Outdata:pchar)则提示如下错误:
     Types of actual and formal var parameters must be identical