◀ANSI版開発トップへ
  • 3271 コード簡略化計画
    • 3351 コード簡略化計画2
      • 3352 コード簡略化計画2-2
        • 3353 Re:コード簡略化計画2-2
          • 3355 Re2:コード簡略化計画2-2
            • 3357 コード簡略化計画2-3
              • 3358 Re:コード簡略化計画2-4
                • 3369 Re2:コード簡略化計画2-4
                  • 3371 バイナリサイズ
    • 3363 コード簡略化計画3 CCommandLine
  • [3271] コード簡略化計画 みく 2003年10月20日 19:54


    CEditView_Command.cpp:8574行目
    bSPACE = _tcschr( m_pcEditDoc->GetFilePath(), SPACE ) ? TRUE : FALSE;
    • [3351] コード簡略化計画2 dskoba 2004年01月10日 21:58

      CShareData_new.cpp
      CShareData::ShareData_IO_2() の MRU 読み書き部

      char szKeyNameTop[64];
      for(省略){
      wsprintf( szKeyNameTop, "MRU[%02d].", i );
      strcpy( szKeyName, szKeyNameTop );
      strcat( szKeyName, "nViewTopLine" );
      cProfile.IOProfileData(省略);
      strcpy( szKeyName, szKeyNameTop );
      strcat( szKeyName, "nViewLeftCol" );
      cProfile.IOProfileData(省略);
      ...
      }

      ↓

      for(省略){
      wsprintf( szKeyName, "MRU[%02d].nViewTopLine", i );
      cProfile.IOProfileData(省略);
      wsprintf( szKeyName, "MRU[%02d].nViewLeftCol", i );
      cProfile.IOProfileData(省略);
      ...
      }
      • [3352] コード簡略化計画2-2 dskoba 2004年01月11日 02:09

        CProfile::IOProfileData()の第5引数 lpDataSrc を char*型 → void*型

        理由:
        CShareData::ShareData_IO_2() で int* や BOOL* は char* にキャストして渡しているが,CProfile::IOProfileData()で元の型に再びキャストしているので。
        効果:
        CShareData::ShareData_IO_2() で IOProfileData() を使用する際,(char*)が必要無くなる。(一部 const_cast は必要だが)

        DIFF差分
        http://www2.wbs.ne.jp/~dskoba/sakura/1434_to_dsk20040110.diff

        ついでに CProfile::IOProfileData() で bool が扱えるようになってます。
        • [3353] Re:コード簡略化計画2-2 dskoba 2004年01月11日 02:20

          ファイル間違えました。
          DIFF差分
          http://www2.wbs.ne.jp/~dskoba/sakura/1434_to_dsk20040110.lzh
          • [3355] Re2:コード簡略化計画2-2 もか 2004年01月11日 17:48

            >CProfile::IOProfileData()の第5引数 lpDataSrc を char*型 → void*型
            >(char*)が必要無くなる。
            ついでにこういうのはどうでしょう?
            (可能なら)第4引数のREGCNV_***の指定をなくしたものを型ごとに定義します。
            intなどの参照型でも書き換えられるものは、最後の引数も無くします。
            CProfile::IOProfileData( BOOL, LPCTSTR, LPCTSTR, char*, int );
            CProfile::IOProfileData( BOOL, LPCTSTR, LPCTSTR, int* );
            ...
            新設した関数群は、従来のまたはlpDataSrcをvoid*に変更したCProfile::IOProfileDataに処理を依頼する。
            • [3357] コード簡略化計画2-3 dskoba 2004年01月12日 01:35

              ▼ もかさん
              > (可能なら)第4引数のREGCNV_***の指定をなくしたものを型ごとに定義します。
              > intなどの参照型でも書き換えられるものは、最後の引数も無くします。

              以前作った STL 版 CProfile に組み込んでみました。

              1.4.3.4からのDIFF差分
              http://www2.wbs.ne.jp/~dskoba/sakura/1434_to_dsk20040111.lzh


              これを組み込まないとして,修正箇所。
              CShareData_new.cpp の IOProfileData()の引数。
              ・&m_pShareData->m_Types[i].m_szHokanFile
              ・&m_pShareData->m_Types[i].m_szKeyWordHel
              pFile
              ・&m_pShareData->m_Types[i].m_szKinsokuHea
              d
              ・&m_pShareData->m_Types[i].m_szKinsokuTai
              l
              先頭の&を削除。

              ・&m_pShareData->m_Types[i].m_cLineTermCha
              r
              で使っている nRegCnvID。REG_BINARY (CProfile で未定義) から REGCNV_CHAR2SZ に変更。
              • [3358] Re:コード簡略化計画2-4 dskoba 2004年01月14日 00:10

                1.4.3.4からのDIFF差分
                http://www2.wbs.ne.jp/~dskoba/sakura/1434_to_dsk20040113.lzh
                ・1434_to_dsk20040113.diff
                元々のCProfileで作成。ただしBOOLはboolに変更されている。
                ・1434_to_dsk20040113stl.diff
                STL版のCProfile。例外処理を入れてみました。

                修正はこれで止めておきます。

                >REG_BINARY (CProfile で未定義)
                訂正:REG_BINARY (REGCNV_CHAR2SZ と値が等しい)
                • [3369] Re2:コード簡略化計画2-4 げんた 2004年01月25日 14:36

                  STL版取り込んでみました.

                  他にも何カ所かSTL使っているところがあるのですがバイナリサイズがどんどん大きくなってしまうのが悩みの種です.
                  mapが結構おおきいのかなぁ.
                  • [3371] バイナリサイズ dskoba 2004年01月25日 21:32

                    ▼ げんたさん
                    > 他にも何カ所かSTL使っているところがあるのですがバイナリサイズがどんどん大きくなってしまうのが悩みの種です.
                    > mapが結構おおきいのかなぁ.

                    自分で書いておいてなんですが sstream,fstream はやめた方が良いですね。
                    CProfile でしか使っていないですし。
    • [3363] コード簡略化計画3 CCommandLine dskoba 2004年01月18日 00:20

      CCommandLine の private メンバ関数が static になっていて,メンバ変数に引数経由でアクセスしていたので static をやめてメンバ変数を直接扱うように変更。

      1.4.3.4 からの diff
      http://www2.wbs.ne.jp/~dskoba/sakura/ccommandline_dsk20040117.lzh