C# 如何使用标准C中定义的struct结构?
用C#做客户端,服务器端是UNIX用ANSI C,两端通过socket通讯。
服务器端定义了一系列的struct结构(在一个.h文件中),将这些结构的内容按字节流发给客户端。由于客户端用C#,无法直接include服务器端定义的.h文件,而且托管代码的的内存结构和非托管的不同,所以不能直接使用收到的字节流。
解决的方法:
1。序列化。为每个struct都写一个相应的C#类,并实现序列化接口。
2。自定义Marshal。为每个struct都写一个相应的自定义Marshal类。
问题:
struct类型太多了!大约有上百个。以上两种方法都需要为每个struct写C#代码,不太现实。
有没有可能用C++/CLI开发socket通讯这一块,这样就能直接使用.h文件了。但是,其他部分还是用C#实现的话,又如何使用C++/CLI编写的模块呢?
或者有没有其他的解决方法?
多谢了!