CArchive(MFC)到JSON?

时间:2015-04-10 05:23:22

标签: php json visual-studio-2008 mfc carchive

我必须从服务器接收数据。服务器的应用程序是用VS2008(MFC)编写的。只有一种方法可以从服务器发送此数据 - >作为CArchive对象。我无法更改服务器来源。

我希望用PHP(通过tcp)接收这些数据,并将它们转换为JSON。是否有任何将CArchive转换为JSON的智能方法?

1 个答案:

答案 0 :(得分:1)

CArchive没有可以解析的预定义格式。它只是一个依赖于应用程序的二进制文件。你必须知道它是什么,知道如何阅读它。一个库可以让你更容易阅读一些数据类型(CStringCArray等)但我不确定你会发现这样的东西。

以下示例显示CArchive如何工作(存储部分):

CArchive ar;
int i = 500;
float f = 10.4f;
CString str(_T("string"));
ar << i << f << str;

所以你必须读取二进制数据并以某种方式解释它。这在 C ++ 中很容易,因为 MFC 框架确切地知道如何序列化类型,包括CStringCArray等复杂类型。但是你必须自己使用 PHP

来做这件事

例如,您可能会在指定的偏移处读取4个字节并将其解释为intfloat的下四个字节。然后你必须看看如何加载CString,它首先存储长度然后存储数据,但你必须看看它使用的确切格式。

没有现成的/使用CArchive - &gt; JSON 转换器。我建议您修改服务器代码以生成CArchive JSON 数据。