Estoy a punto de embarcarme en un proyecto para conectar dos programas, uno en C# y otro en C++. Ya tengo un programa C# en funcionamiento, que puede hablar con otras versiones de sí mismo. Antes de comenzar con la versión de C++, he pensado en algunos problemas:Buffers de protocolo, obtener C# para hablar con C++: escribir problemas y problemas de esquema
1) Estoy usando protobuf-net v1. Considero que los archivos .proto del serializador son exactamente lo que se requieren como plantillas para la versión de C++. Una búsqueda en google mencionó algo sobre el revestimiento pascal, pero no tengo idea si eso es importante.
2) ¿Qué debo hacer si uno de los tipos de .NET no tiene una contraparte directa en C++? ¿Qué sucede si tengo un decimal o un diccionario? ¿Tengo que modificar los archivos .proto de alguna manera y aplastar los datos en una forma diferente? (Voy a examinar los archivos y ver si puedo resolverlo)
3) ¿Hay otros problemas que las personas puedan pensar? Formatos binarios y cosas así?
EDIT He echado un vistazo a uno de los archivos proto ahora. Parece que las cosas específicas de .NET están etiquetadas, por ejemplo, bcl.DateTime o bcl.Decimal. Los subtipos están incluidos en las definiciones de proto. Aunque no estoy seguro de qué hacer con los tipos de bcl. Si mi programa de C++ ve un decimal, ¿qué hará?
No estoy seguro de cuál es la distinción? Usé Serializer.GetProto para obtener una cadena, que era perfectamente legible y se parece a un archivo .proto. –
Carlos