转换C++;在构建时将结构转换为C#结构
以下是背景: 我们有一个传统程序,它用C++编写数据日志。数据包含在不同的结构中。读取日志文件的程序使用这些相同的结构来显示数据。我重写了读取日志文件和C#的程序,并且必须手动创建所有这些结构的C#副本。转换C++;在构建时将结构转换为C#结构,c#,c++,structure,marshalling,C#,C++,Structure,Marshalling,以下是背景: 我们有一个传统程序,它用C++编写数据日志。数据包含在不同的结构中。读取日志文件的程序使用这些相同的结构来显示数据。我重写了读取日志文件和C#的程序,并且必须手动创建所有这些结构的C#副本。 有更好的方法吗?我曾考虑过设置一个结构的查找路径,以及一种在构建时生成C#结构的解析器,但处理所有特殊情况似乎过于复杂。有什么建议吗?C#没有任何向后兼容性来处理C/C++结构,这似乎有点可笑。有多少结构,它们有多复杂 我认为这是一个成本与收益的问题。我敢打赌,从你的问题判断,用C#快速编码结
有更好的方法吗?我曾考虑过设置一个结构的查找路径,以及一种在构建时生成C#结构的解析器,但处理所有特殊情况似乎过于复杂。有什么建议吗?C#没有任何向后兼容性来处理C/C++结构,这似乎有点可笑。有多少结构,它们有多复杂 我认为这是一个成本与收益的问题。我敢打赌,从你的问题判断,用C#快速编码结构是最好的方法 只有我的2美分,税前…您的问题摘要: 在现有的C++程序中,您有大量的结构,可以将其序列化为磁盘。您希望将结构移植到C#,以便将磁盘中的数据反序列化到C#程序中。你不想只做一次。随着两个程序的发展,您希望保持两组结构同步 您需要的是一个能够以独立于语言的方式描述数据的数据库。类似于,或者 您必须采取的步骤是:
有比我想的更多的结构。有很多。问题是,如果开发人员改变C++结构,那么他们必须改变C结构。如果没有,那么我们默认显示十六进制数据。如果这是一条不经常使用的消息,那么我们可能要等到软件发布后很久才能知道。如果这是一个内部项目,您当然可以与开发团队协调,在他们更改结构时为您提供C版本的结构。。。