DLL是VC开发的,里面的一个函数如下:UINT Query(char * szPar1,char * szPar2, char * szPar3,char * szPar4,
           int * piPar5,stReturnResult stPar6[100])前四个是输入参数,第5、6是输出参数,其中stReturnResult是定义了的结构:
    typedef struct stReturnScheme{
             char  name1[9],
             char  name2[21],
             double name3}因为以前没用过DLL,所以请问改如何调用,函数如何写,类型该怎样转换?

解决方案 »

  1.   

    type 
     TstReturnScheme  = record
       namel: array[0..9] of char;
       name2: array[0..20] of char;
       name3: double;
     end;
     
      

  2.   

    function Query(szPar1,szPar2, szPar3, szPar4:pchar; piPar5: Pinteger;
     stReturnResult: array[0..99] of TstReturnScheme): cardinal; stdcall;
     export; external 'XXX.dll';
      

  3.   


    请看回贴:http://expert.csdn.net/Expert/topic/2554/2554756.xml?temp=.9784967
    http://expert.csdn.net/Expert/topic/2815/2815040.xml?temp=.5077326
      

  4.   

    type 
     TstReturnScheme  = record
       namel: array[0..8] of char;
       name2: array[0..20] of char;
       name3: double;
     end;
    AstReturnResult=Array[0..99] of TstReturnScheme ;
    function Query(szPar1,szPar2, szPar3, szPar4:pchar; piPar5: Pinteger;
     stReturnResult: AstReturnResult): cardinal; stdcall;
     export; external 'XXX.dll';
      

  5.   

    还要注意需不需要加上packed record ( TstReturnScheme  = packed record)