2019年3月24日日曜日

Jw_cadのデータ形式

Jw_cad の配布元に公開されている Jw_cadのデータ形式 が一番の資料である。

ここから読み取れることは、

  • Jw_cad のファイルを MFC の CDocument クラスから派生した CJwwDocument クラスとして定義
  • Jw_cad の各図形は、MFC の CObject クラスから派生した CData クラスを図形共通クラスとして定義し、その派生クラスにする
  • 図形のコレクションクラスには CTypedPtrList テンプレートを使用している
この資料から、Jww ファイルを読み書きする CJwwDocument クラスを実際に書いた。
これを MFC拡張ライブラリとして用意した。
MBCS 文字符号集合を使用した、32ビットバージョンなら、これで大丈夫。

しかし、時代は、Unicode が優勢である。64ビットも当たり前に使われている時代である。MBCS, 32ビットが前提のコードを、UNICODE, 64ビットでビルドしたときに起きた不都合はこれだった。

  • 文字列の取り扱い。CString クラスの変数や配列に読み込んでいる。メンバー変数としては CString クラスのままがよいが、ファイルに出力するときは、CStringA クラスの変数に代入して、それを ストリームに出力するとよいことがわかった。
  • ブロック作成日時の取り扱い。CTime クラスが使われている。Jwwファイルの中では32ビットの日時データになっているので、32ビット値として受け取り/書き出ししたものを CTime の変数に入れるようにする。2038年まであと19年、ヨシ!

もうちょっと形にしてから公開しますので、しばらくお待ちください。

0 件のコメント:

コメントを投稿

ARESのトリニティ(三位一体)

 ARESのトリニティ戦略、どこがトリニティなんでしょう。 まずはデスクトップCADが、WindowsにもMacにもLinux版もあるというトリニティ。 デスクトップCADと、モバイルCAD(ARES Touch)と、ブラウザとサーバーCAD(ARES Kudo)のトリニティ。 ...