1

私は最近、coledatetime の Java 実装について質問を受けました。Chrisは、問題は型変換にある可能性があると言いました: cpp-float と java-float (または、cpp-date と java-date のどちらかです。型ではありませんが..) . これについていくつか質問があります。

  • Java と C++ の型の比較表はありますか?
  • 型変換問題である場合、私の状況では (いくつかの C++ プログラムで既に作成された OLEDate レコードを含むデータベースがあります。OLEDate フィールドの互換性が維持されるように、そのデータベースを読み書きする必要があります。私の Java コードは適切な日付を読み取ります、および C++ プログラムは、Java プログラムが db に書き込んだ内容の影響を受けません)。
    • COleDateTime を使用して JNI で日付を取得しますか?
    • どうしても独自の実装を作成しますか (より広範な型を使用するか、その他のものを使用します)?
  • 何かありますか?
4

1 に答える 1

1

C++ では、型の範囲は実装 (コンパイラ/アーキテクチャ) ごとに異なる可能性があり、実際に異なるため、標準の C++ 型サイズがないため、標準の Java-C++ 型比較はありません。

しかし、現在のほとんどのアーキテクチャでは、Java の場合と同様に、C++ の double は標準の IEEE 754 の double です。そのため、コードはいくつかのまれなアーキテクチャに厳密に移植できるわけではありませんが、ほとんどの場合、x86/x86_64 アーキテクチャでは機能しません。

前の回答のコメントに、あなたが対処しなかった質問がありました: あなたが持っている実装で機能しないのは何ですか?

于 2010-04-14T08:48:13.907 に答える