◀ANSI版開発トップへ
  • 1423 マクロの変更を元に戻したいのだけど...
    • 1424 Re:マクロの変更を元に戻したいのだけど...
    • 1425 Re: マクロの変更を元に戻したいのだけど...
    • 1426 Re:マクロの変更を元に戻したいのだけど...
      • 1427 Re2:マクロの変更を元に戻したいのだけど...
      • 1428 マクロで死ぬのは...
        • 1429 Re: マクロで死ぬのは...
          • 1432 Re: マクロで死ぬのは...
            • 1433 Re2: マクロで死ぬのは...
        • 1430 Re:マクロで死ぬのは...
          • 1435 memcpyとstrcpy
          • 1437 Re2:マクロで死ぬのは...
  • [1423] マクロの変更を元に戻したいのだけど... げんた 2002年01月30日 20:04

    Diffのbookmark機能がうまく動かなかったので試しに別のマクロを実行してみたらアプリケーションエラー.
    これではリリースできません.

    ここでがんばって直しても次回PPAに置き換え予定でしたら,やざきさんには悪いですがマクロの変更は見送ったほうが良いと思います.

    で,どこまで戻せばいいんだっけ?また過去ログを漁らないと.
    影響範囲はC*Macro*ファイルだけですか?
    • [1424] Re:マクロの変更を元に戻したいのだけど... hor 2002年01月30日 20:53

      ▼ げんたさん
      > Diffのbookmark機能がうまく動かなかったので試しに別のマクロを実行してみたらアプリケーションエラー.

      アプリケーションエラーの件はともかく、
      Bookmarkの方はパターンを//で囲んでおられませんか?
    • [1425] Re: マクロの変更を元に戻したいのだけど... げんた 2002年01月30日 20:57

      >影響範囲はC*Macro*ファイルだけですか?
      よく見るとDLLSHAREやCEditDocも変わってるじゃん.鬱山車脳.
    • [1426] Re:マクロの変更を元に戻したいのだけど... やざき 2002年01月30日 22:07

      ▼ げんたさん
      > Diffのbookmark機能がうまく動かなかったので試しに別のマクロを実行してみたらアプリケーションエラー.
      > これではリリースできません.

      PPA.DLLに置き換えたとしても、PPA.DLLが無い状態でも現在と同程度のマクロが動くようにという需要があったので、結局はマクロのルーチンを書き換えないといけないと思うんですけど。
      それでも戻すというのであれば、22日まで戻って、27日のを削除して、私が盛り込んだ以外の修正を取り込めばいいんじゃないでしょうか。

      • [1427] Re2:マクロの変更を元に戻したいのだけど... やざき 2002年01月30日 22:40

        ▼ やざきさん
        > PPA.DLLに置き換えたとしても、PPA.DLLが無い状態でも現在と同程度のマクロが動くようにという需要があったので、結局はマクロのルーチンを書き換えないといけないと思うんですけど。

        そうそう、PPA.DLLが無かったらマクロが動かないようにするなら、それでもいいかも :-)
      • [1428] マクロで死ぬのは... げんた 2002年01月31日 01:32

        ▼ やざきさん
        > PPA.DLLが無い状態でも現在と同程度のマクロが動くように
        それは失礼しました。

        ところで、このマクロは昔のCと同じで引数を与えられた通りに格納して解釈したいように読み出す。
        だから、引数の型を間違えると簡単にクラッシュする。(この仕様は以前からだけど)

        今回のクラッシュもそれと関係があるかもしれないので調べてみます。

        --
        もう一つついでに質問。
        memcpy((char*)param->m_pData, szParam, nLen );
        param->m_pData[nLen] = '\0';
        って
        strcpy((char*)param->m_pData, szParam );
        より速いんですか?

        --
        ついでに感想。
        わざわざ線形listを自前で実装しなくてもlist<>使えば楽なのに。私がlist<>とvector<>で作ったところも自前のリストと配列に直されている。

        CMacroとCKeyMacroの両方のデストラクタでリストを解放していたので「ややっ」と思いましたが、よく見たら2重リストでした。
        • [1429] Re: マクロで死ぬのは... げんた 2002年01月31日 12:35

          ▼げんた
          >ところで、このマクロは昔のCと同じで引数を与えられた通りに格納して解釈したいように読み出す。
          >だから、引数の型を間違えると簡単にクラッシュする。(この仕様は以前からだけど)
          >
          >今回のクラッシュもそれと関係があるかもしれないので調べてみます。
          アプリケーションエラーを見るとアクセス先が0x00000000番地でした.
          引数が0個だと上記エラーで死にます.引数0を与えたら動きました.
          • [1432] Re: マクロで死ぬのは... げんた 2002年01月31日 14:20

            >引数が0個だと上記エラーで死にます.
            直しました.
            CMacro.cpp (411):
            pcEditView->HandleCommand( m_nFuncID, TRUE,( paramArr[0] ? *((int*)paramArr[0]) : 0 ), 0, 0, 0 );

            動くようになったのでこのまま行きます.

            残りは正規表現か.
            • [1433] Re2: マクロで死ぬのは... やざき 2002年01月31日 14:33

              ▼ げんたさん
              > >引数が0個だと上記エラーで死にます.
              > 直しました.
              > CMacro.cpp (411):
              > pcEditView->HandleCommand( m_nFuncID, TRUE,( paramArr[0] ? *((int*)paramArr[0]) : 0 ), 0, 0, 0 );
              >
              > 動くようになったのでこのまま行きます.
              >
              > 残りは正規表現か.

              すみませんでした。ありがとうございました。(^-^)
        • [1430] Re:マクロで死ぬのは... やざき 2002年01月31日 14:19

          ▼ げんたさん
          > もう一つついでに質問。
          > memcpy((char*)param->m_pData, szParam, nLen );
          > param->m_pData[nLen] = '\0';
          > って
          > strcpy((char*)param->m_pData, szParam );
          > より速いんですか?

          どうなんでしょう?
          詳しい方のレスポンスに期待。


          > ついでに感想。
          > わざわざ線形listを自前で実装しなくてもlist<>使えば楽なのに。私がlist<>とvector<>で作ったところも自前のリストと配列に直されている。

          自前のほうが速いと思っていたけど?

          ちなみに、KeyMacroMgrとCSMacroMgrのいいとこどり(主観)で今のを作ったつもり。
          どうぞご自由に。
          • [1435] memcpyとstrcpy あろか 2002年01月31日 22:11

            ▼ やざきさん
            > ▼ げんたさん
            > > もう一つついでに質問。
            > > memcpy((char*)param->m_pData, szParam, nLen );
            > > param->m_pData[nLen] = '\0';
            > > って
            > > strcpy((char*)param->m_pData, szParam );
            > > より速いんですか?
            >
            > どうなんでしょう?
            > 詳しい方のレスポンスに期待。

            ほとんど同じでは? strcpy が'\0'を探しながら1バイトずつコピーするような実装だと差が大きいでしょうけど。
            それより strncpy をお薦め。
          • [1437] Re2:マクロで死ぬのは... げんた 2002年02月01日 00:49

            ▼ やざきさん
            > > わざわざ線形listを自前で実装しなくてもlist<>使えば楽なのに。私がlist<>とvector<>で作ったところも自前のリストと配列に直されている。
            > 自前のほうが速いと思っていたけど?
            list<>は双方向リストなので逆方向ポインタの分だけ無駄がある。
            でも、ポインタで作った双方向リストと比較すると速度的な差や特別なメモリ消費は無いと思う。
            (コンパイルされるとほとんどインライン展開されるので)