函数  void CalcFeature(const emxArray_uint8_T *image, double level, emxArray_real_T *FV)其中emxArray_uint8_T类型为:
struct emxArray_uint8_T
{
    unsigned char *data;
    int *size;
    int allocatedSize;
    int numDimensions;
    unsigned char  canFreeData;
};emxArray_real_T类型为:
struct emxArray_real_T
{
    double *data;
    int *size;
    int allocatedSize;
    int numDimensions;
    unsigned char  canFreeData;
};

解决方案 »

  1.   

    type
    //其中emxArray_uint8_T类型为:
      emxArray_uint8_T=record
        data:^char;
        size:^integer;
        allocatedSize:integer;
        numDimensions:integer;
        canFreeData:char;
      end;//emxArray_real_T类型为:
      emxArray_real_T=record
        data:^double;
        size:^integer;
        allocatedSize:integer;
        numDimensions:integer;
        canFreeData:char;
      end;procedure CalcFeature(emxArray_uint8:^emxArray_uint8_T, level:double , emxArray_real:^emxArray_real_T);
    beginend;语法上大概是这样,但C中的类型*image 和*FV在DELPHI中应该不可以这样定义的
      

  2.   

    注意C代码编译时所选择的对其方式,函数直接转换到Delphi要注意调用约定,若C中无特殊约定,则为cdecl
      

  3.   

    type
    //其中emxArray_uint8_T类型为:
      emxArray_uint8_T=record
        data:PUChar;
        size:^integer;
        allocatedSize:integer;
        numDimensions:integer;
        canFreeData:Byte;
      end;//emxArray_real_T类型为:
      emxArray_real_T=record
        data:^double;
        size:^integer;
        allocatedSize:integer;
        numDimensions:integer;
        canFreeData:Byte;
      end;procedure CalcFeature(var emxArray_uint8:emxArray_uint8_T; level:double;var  emxArray_real:emxArray_real_T);
    beginend;