我有一个C的动态库ic_dll.dll,
里面有一个函数bool GetNextK(int MachNo,char *Result);
Result:一个长度为22的字符数据组,返回结果存在此数据组中请问我在delphi里怎样静态声明和调用这个函数,谢谢,在线等。

解决方案 »

  1.   

    这函数是啥声明啊,22个字符应该是以#0结尾吧?长度是不固定的吧?
    var
      buf: array[0..255] of Char;
    GetNextK(0, buf);
      

  2.   

    in c++:
    WINAPI bool GetNextK(int MachNo,char *Result); in Delphi:
    function GetNextK(MachNo:integer;var Result:Pchar):boolean;stdcall;//Result在传入前先分配内存var 
      buff:array[0..22] of char;//NULL
      
      FillChar(buff,23,2);
      if GerNextK(0,buff) then
      

  3.   


    这位楼主正确,主是是C中定义函数时,使用WINAPI 
    Delphi声明函数时,stdcall
    这才两种语言的参数传递需要保持一致.
      

  4.   


    正确,只要在C++和 delphi中使用相同的 调用惯例 即可