サーバーからデータを受信する必要があります。サーバーのアプリケーションは VS2008 (MFC) で書かれています。このデータをサーバーから送信する方法は 1 つしかありません -> CArchive オブジェクトとして。サーバーソースを変更できません。
このデータを PHP で (tcp で) 受け取り、JSON に変換したいと考えています。CArchive を JSON に変換するスマートな方法はありますか?
サーバーからデータを受信する必要があります。サーバーのアプリケーションは VS2008 (MFC) で書かれています。このデータをサーバーから送信する方法は 1 つしかありません -> CArchive オブジェクトとして。サーバーソースを変更できません。
このデータを PHP で (tcp で) 受け取り、JSON に変換したいと考えています。CArchive を JSON に変換するスマートな方法はありますか?
CArchive
解析できる定義済みの形式がありません。これは、アプリケーションに依存する単なるバイナリ ファイルです。読み方を知るには、その内容を知らなければなりません。CString
ライブラリを使用すると、一部のデータ型 ( 、など)を読みやすくなる可能性がありCArray
ますが、このようなものが見つかるかどうかはわかりません。
次の例は、どのように機能するかを示していますCArchive
(格納部分)。
CArchive ar;
int i = 500;
float f = 10.4f;
CString str(_T("string"));
ar << i << f << str;
したがって、バイナリ データを読み取って、何らかの形で解釈する必要があります。MFCフレームワークは、やなどの複雑な型を含む型をシリアル化する方法を正確に認識しているため、 C++ ではこれは簡単です。ただし、これはPHPを使用して自分で行う必要があります。CString
CArray
たとえば、指定されたオフセットで 4 バイトを読み取り、それをint
. の次の 4 バイトfloat
。次に、ロード方法を確認する必要CString
があります。最初に長さを格納し、次にデータを格納しますが、使用する正確な形式を確認する必要があります。
すぐに使用できるCArchive
-> JSONコンバーターはありません。CArchive
とJSONデータの両方を生成するようにサーバー コードを変更することをお勧めします。