结构体的确切结构并不重要。
据我所知,以下 C 代码正在读取“块”二进制数据(大小等于结构体大小),并直接将其写入结构体中(即前32字节到名称,下一个2字节到属性等)。C# 管理代码中是否有相应的等效方法?
请提供代码片段以展示类似的结果。为了节省时间,您可以简化为只有几个元素,并假设适当的文件流类型对象已经初始化。
注意:我将使用现有的遗留数据文件,因此现有数据文件的格式/打包方式很重要。例如,我不能仅使用 .net 序列化/反序列化,因为我将处理遗留现有文件(更改格式是不可行的)。
typedef struct _PDB
{
char name[32];
unsigned short attrib;
unsigned short version;
unsigned int created;
unsigned int modified;
unsigned int backup;
unsigned int modNum;
unsigned int nextRecordListID;
unsigned short numRecs;
} PDB;
void getFileType(FILE *in)
{
PDB p;
fseek(in, 0, SEEK_SET);
fread(&p, sizeof(p), 1, in);
. . .
}