typedef void (*VoipCallback)(tag_Voip_Message *msg);//系统初始化参数定义:
typedef struct
{
bool blog;
char szVOIP_IP[30];
int nVOIP_Port;
int nLocal_Sig_Port;
char szLocal_IP[30];
int nLocal_RTP_Port;
en_CodecTypeDef codec_type;
int nPeriod_length;
VoipCallback pfCallBack;
}tag_Init_Para;int VoipInit(tag_Init_Para* pInitSysPara);这是C++在.h文件中声明的,那我在D里应该怎么声明呀??

解决方案 »

  1.   

    type VoipCallback = procedure(msg: PInit_Para); cdecl; type tag_Init_Para = record
      blog:  Boolean;
      szVOIP_IP:   array[0..29] of Char;
      nVOIP_Port:  Integer;
      nLocal_Sig_Port:  Integer;
      szLocal_IP: array[0..29] of Char;
      codec_type: en_CodeTypeDef; // en_CodeTypeDef的定义在哪里,应该是一个枚举型之类的
      nPeriod_length: Integer;
      pfCallBack: VoipCallback;
    end;
    PInit_Para = ^tag_Init_Para;function VoipInit(pInitSysPara: PInit_Para): Integer;
      

  2.   

    是一个枚举类型
    typedef enum
    {
    CODEC_G723a = 1,
    CODEC_G711a,
    CODEC_G711u,
    CODEC_G729a,
    CODEC_iLBC,
    } en_CodecTypeDef;
    这个又要怎么定义呢?
      

  3.   

    typedef enum
    {
    CODEC_G723a = 1,
    CODEC_G711a,
    CODEC_G711u,
    CODEC_G729a,
    CODEC_iLBC,
    } en_CodecTypeDef;type en_CodecTypeDef = 
    (
      CODEC_G723a = 1,
      CODEC_G711a,
      CODEC_G711u,
      CODEC_G729a,
      CODEC_iLBC,
    )
      

  4.   

    type en_CodecTypeDef = 
    (
      CODEC_G723a = 1,
      CODEC_G711a,
      CODEC_G711u,
      CODEC_G729a,
      CODEC_iLBC,
    )
    我把这个copy进去,报错的呀。