私はJavaアプリケーションを使用して、byte []構造体をDBに保持しています(Hibernateを使用)。私は後でこれらの構造体を読み込むC++アプリケーションを作成しています。C++のJava byte []へのアクセス
私は問題があります.... DBに書き込まれたbyte []構造体は、元のバイト数 - 27バイトよりも長く見えます。
実際のデータの先頭を正しく見つけるために、byte []ヘッダ構造を(C++で)判別する方法はありますか?
JNIソースコード(GetArrayLength(jbytearray)など)を調べて、どのように動作するのかを確認しましたが、JVMコードのバラエティに素早く没頭しました。うん...
アイデア?
あなたは 'byte []'の実際のサイズも構造体も考えません。配列のより良い説明、それが持つ可能性のある規則性、前と後のサンプルを提供すると助けになります。 –
DB構造が一般的な意味でクロスプラットフォームである必要がある場合は、データの永続化/直列化の方法を変更する側から攻撃することを検討することもできます。 – Darien
データの長さは、永続化されるデータのタイプによって異なります。いくつかのものは短いもの(Javaで書かれた65バイトと実際のデータでは38バイト)と長さが長いもの(DBでは1789バイト、実データでは1762バイト)です。結局、全長は関係ありませんよね? – redBeard