IDLGenerator 1.0
版本概述
首次发布,支持以下特性:
- 支持通过-f参数指定头文件所在路径,路径支持绝对路径和相对路径
- 支持一次转换多个.h头文件
- 支持.h文件在不同目录下
- 自动解析.h文件中包含的头文件并转换成.idl
- 类型定义统一定义到每级目录的Types.idl中
遗留问题
- 枚举类型中非10进制、负数和位运算不支持转换,举例:
typedef enum {
DISPLAY_START = 1 //支持
DISPLAY_SUCCESS = 0x1234u, //不支持
DISPLAY_FAILURE = -1, //不支持
HBM_USE_CPU_READ = (1 << 0), //不支持
} DispErrCode;
- 只支持结构体类型的callback对象生成idl,不支持函数指针类型的callback对象生成idl,举例:
IFoo.h
struct IFooCallback {
int32_t (*PushData)(struct IFooCallback *self, const char* message);
};
struct IFoo {
int32_t (*SendCallbackObj)(struct IFoo *self, struct IFooCallback* cbObj //支持);
};
IFoo.h
typedef int32_t (*IFooCallback)(const char* message);
struct IFoo {
int32_t (*SendCallbackObj)(struct IFoo *self, IFooCallback* cbObj //不支持);
};