dll的接口如下:BOOL EXPORTED_DLL_FUNCTION WriteNumber(BYTE iAddress, T_Class* Tmp_data,int Sound )typedef struct Data_Type
{
LPSTR iDate;       
short int iType;  
}T_Data;typedef struct tagT_Class
{
short int iAdress;
int iNumber;      
    T_Data iData[6];  
}T_Class;
这个在Delphi中怎么定义?求教

解决方案 »

  1.   

    dll函数在D中的定义:
    finction WriteNumber(iAddress:byte;var tmp_data:t_class;Sound:integer):boolean;stdcall;
    数据结构定义如下:
      type
         T_Data=record
           idate:LPSTR;//---呵~~数据类型不知道,请找出在D中对应的数据类型;
           iType:byte;
         end; 
         T_Class=record
             iAddress:byte;
             iNumber:integer;
             iData:T_data;
            end;
      

  2.   

    在delphi中这样定义:
    finction WriteNumber(iAddress:byte;var tmp_data;Sound:integer):LongBool;stdcall;
    至于数据结构,在二进制兼容上还真比较困难。我再看看,关键是内存结构不一致。而Delphi的数组具有前导计数。
      

  3.   

    是__stdcall的,在 delphi不知怎么传vc++的指针变量,只会传字符型的