将C ++应用程序重写为C#时遇到了一些困难。基本上,C ++应用程序包含一个包含结构和枚举定义的C头文件:
想象一下:
标题文件:
/********** myHeader.h *************/
#ifndef MY_HEADER_H
#define MY_HEADER_H
#define MY_CONSTANT 10u
#define OTHER_CONSTANT 20u
typedef enum
{
ACTION_ONE,
ACTION_TWO,
NUMBER_OF_ACTIONS
} myEnum;
typedef struct
{
uint32_t member;
uint32_t bitfield_msb : 24;
uint32_t bitfield_lsb : 8;
} myStruct;
#endif
所以目前C ++程序引用了这些结构。它从.h文件中获取格式,并根据此数据构造结构。标题本身也包含在C项目中。这确保了两个项目之间的兼容性,因为它们都使用相同的数据结构。
有人能推荐一种在C#中实现此功能的好方法吗?或者这是不可能的任务。当然,我可以用C#格式单独定义结构,但在这种情况下,C项目和(要转换为C#项目的C ++)之间的连接将会丢失。