Iwao Dev

気付いたことをメモしています.

この画面は、簡易表示です

2012/04/27

ipx , PartsA , PartsA_C3D

2012/04/25 以前の PartsA などの ipx の読込みは,CArchive::ReadString を利用していた.
今回,Parts ファミリのファイルアクセスは,LoadText ,SaveText に置き換える.


ReadString を利用していた時の動作
  PartsA_C3D::ImportTxt より PartsA::SerializeTxt が呼ばれる.
   PACnv3.exe!PartsA::SerializeTxt(CArchive & ar={…}) 行 464
   PACnv3.exe!PartsA::Serialize(CArchive & ar={…}) 行 361
   PACnv3.exe!PartsA_C3D::ImportTxt(… * pathName) 行 336
   PACnv3.exe!PartsA_C3D::Import(… * pathName) 行 137
   PACnv3.exe!CPACnv3Doc::OnOpenDocument(… * lpszPathName) 行 177
  PartsA_C3D::ImportTxt で,exe と ipx の種類により,ReadString で読める形式でコピーする.
   FileMBWC.hxx GetReadTextName により,
    UNICODE.exe の場合,UTF-16 のテキストファイルにコピーする.
  PartsA::Serialize を呼出す前には,BOM を読み飛ばした位置にポインタがある.
   FileMBWC.hxx SerializeTextBOM(ar) により,UNICODE.exe の場合に飛ばす.
  * PartsA_C3D を利用してない exe では,形式が異なるファイルは読み出せなかった.
    VxxxxV などの exe は,PartsA::Serialize としているのでこれにあたる.


ReadString を利用しない様にしたので,PartsA_C3D::ImportTxt は,シンプルになった.
  BOOL PartsA_C3D::ImportTxt (LPCTSTR pathName)
  {
    if (!PartsA::IsTextFile(pathName)) { return FALSE ; }
    CString str ;
    if (!::LoadText(pathName,str))   { return FALSE ; }
    return PartsA::ImportTxt(str) ;
    }

この投稿は役に立ちましたか? 役に立った 役に立たなかった 0 人中 0 人がこの 投稿 は役に立ったと言っています。

  にほんブログ村 IT技術ブログへ



    top

    %d人のブロガーが「いいね」をつけました。