本帖最后由 yangsj85 于 2010-04-21 16:57:34 编辑

解决方案 »

  1.   

    struct tag_PatientMainInfo
    {
    char sPatientId[20];
    char sFamilyName[30];
    char sFirstName[30];
    bool sSex;
    int  sBirthday;
    unsigned short int sMenopauseAge;
    //unsigned char *  sReferringOper;
    char sReporter[30];
    char  sOperator[30];
    double sWeight;
    double sHeight; long sSiteNumber;
    char  sSiteName[30];
    double sSOSMin;
    double sSOSAvg;
    double sSOSMax;
    double sTScore;
    double sZScore; //string sComments;
    };这是vc++的,我转化为delphi如下,却报错,大家帮我看看错在哪里。
    type
      PatientMainInfo=^tag_PatientMainInfo;
       tag_PatientMainInfo=packed record
    sPatientId:array[0..19] of Char;
    sFamilyName:array[0..29] of Char ;
    sFirstName:array[0..29] of Char;
    sSex:BOOL;
    sBirthday:Integer;
    sMenopauseAge:Word;
    //sReferringOper:pchar;
    sReporter:array[0..29] of Char;
    sOperator:array[0..29] of Char;
    sWeight:Double;
    sHeight:Double; sSiteNumber:LongInt;
    sSiteName:array[0..29] of Char;
    sSOSMin:Double;
    sSOSAvg:Double;
    sSOSMax:Double;
    sTScore:Double;
    sZScore:Double; //sComments:string;
    end;
      

  2.   


    _declspec(dllexport) tag_PatientMainInfo WINAPI GetInformation(string sLibPath, string sId)
    用了string,delphi和vc的对象系统不兼容。没得转了。设计这个函数的人可以去吃大便了。
      

  3.   

    不仅仅是参数的问题.它定义前没加extern "C" ,是C++的导出函数,只能用C++(而且是原编译器的C++)调用
      

  4.   

    _declspec(dllexport) 这个里面已经包含了extern "C" ,
    关键还是用了string类型,改用char *吧,不然delphi是用不了