◀ANSI版開発トップへ
  • 1570 * No Subject *
    • 1571 Re:* No Subject *
      • 1573 Re2:* No Subject *
        • 1576 Re2:* No Subject *
          • 1577 Re3:* No Subject *
            • 1584 Re4:* No Subject *
              • 1585 Re5:* No Subject *
                • 1586 Re6: CShareData
                  • 1587 Re7: CShareData
                    • 1593 Ver 1.2.106.1
                      • 1594 Re:Ver 1.2.106.1
  • [1570] * No Subject * すとーにぃ 2002年02月13日 11:43

    2/11のソースをコンパイルしてみました。

    ・共通設定のキー割り当てで「外部マクロ」を選択
    または
    ・編集画面で右クリック
    でお亡くなりになります(;_;)。

    NT4.0SP6a + IE5.01SP2 + VC6SP5 です
    • [1571] Re:* No Subject * やざき 2002年02月13日 12:12

      > ・共通設定のキー割り当てで「外部マクロ」を選択
      > または
      > ・編集画面で右クリック
      > でお亡くなりになります(;_;)。

      すみません。手元では確認できませんでした。
      Windows2000 + IE5.01SP2 + VC6SP5 です。

      影響を受けそうなのはiniファイルだけですので、
      いまあるiniファイルを、eGroupにアップロードするか
      送っていただけないでしょうか?
      調べてみたいと思います。

      よろしくお願いします。
      • [1573] Re2:* No Subject * すとーにぃ 2002年02月13日 12:27

        ▼ やざきさん
        > 影響を受けそうなのはiniファイルだけですので、
        > いまあるiniファイルを、eGroupにアップロードするか
        > 送っていただけないでしょうか?
        > 調べてみたいと思います。

        試しにiniファイルを削除したところ、右クリックでお亡くなりになる
        現象は回避されました。
        が、キー割り当ての画面ではやはり死にます。

        iniファイルの送信は帰宅後になると思います。m(_ _)m
        • [1576] Re2:* No Subject * げんた 2002年02月13日 13:15

          >試しにiniファイルを削除したところ、右クリックでお亡くなりになる
          >現象は回避されました。
          >が、キー割り当ての画面ではやはり死にます。
          キー割り当て,ツールバー共に「外部マクロ」を選択した瞬間に死にますね.
          PPA.DLLがあるときのみ再現します.
          • [1577] Re3:* No Subject * やざき 2002年02月13日 13:18

            ▼ げんたさん
            > PPA.DLLがあるときのみ再現します.

            んが。確認しました。早速修正します。
            • [1584] Re4:* No Subject * やざき 2002年02月13日 14:28

              ▼ やざきさん
              > ▼ げんたさん
              > > PPA.DLLがあるときのみ再現します.
              >
              > んが。確認しました。早速修正します。

              と言って見たものの、手がかりつかめずです。。。
              • [1585] Re5:* No Subject * やざき 2002年02月13日 16:45

                ▼ やざきさん
                > ▼ やざきさん
                > > ▼ げんたさん
                > > > PPA.DLLがあるときのみ再現します.
                > >
                > > んが。確認しました。早速修正します。
                >
                > と言って見たものの、手がかりつかめずです。。。

                CSMacroMgr.cppのコンストラクタで宣言して、すぐに破棄されている

                CShareData m_cShareData;

                を、クラスメンバに持っていったら死ななくなりました。
                お試しあれ。

                しかし、PPA.DLLのありなしで変わるのはよくわかりません。
                • [1586] Re6: CShareData げんた 2002年02月13日 18:29

                  >CShareData m_cShareData;
                  >を、クラスメンバに持っていったら死ななくなりました。
                  デストラクタでUnmapView していますから,CShareDataがいなくなるとアドレスの先のメモリが消えちゃうんですね.ということは,DLLSHARE* とCShareData の存続期間は同一である必要がありますね.

                  やざきさんのCPPA.cppとCSMacroManager.cppを見たところいくつか問題点が見つかりました.とりあえず
                  ・上記問題に関連して,CEditViewのCShareData.cppを共用しているがオブジェクトの存続期間がきちんと考慮されているか.
                  ・CSMacroManager.cppのコンストラクタでnewしているManagerがどこでもdeleteされていない.
                  時間ができたらもう少し見直してみます.

                  >PPA.DLLのありなしで変わるのはよくわかりません。
                  同一プロセスから複数回 mapした場合には同じアドレスが返されてOS内部の参照カウンタが増えるだけだから,にしてはCEditView等が既に使っているはずではありますが.同じアドレスが返されること「も」あるのかな?
                  • [1587] Re7: CShareData やざき 2002年02月13日 19:24

                    なるほど。

                    CShareDataは役割とスコープをもう一度考え直したほうがよさそうですか?

                    ・CShareDataは、CProcessでnew/deleteする。
                     #そうすれば、起動直後にCreateFileMapping()されて、終了時にUnmapView()されるよね?

                    ・CShareDataのインスタンスは、CShareData::getInstance()で取得。
                     ひとまずあとは今までどおり。
                     CShareDataはどこでもnew/deleteできるけど、new/deleteしたときの動作は(はじめのうちは)保証しない。

                    というのでどうかな?
                    今回みたいなバグは、CShareDataが静的/動的に確保しなおされているところを探せば、拾えるようになる。

                    #後ほど、ソース(差し替え用ファイルのみ)とお試し版をアップロードしますね。
                    #期待していて幻滅したかたごめんなさい。もう一度トライしてみてください(__;
                    • [1593] Ver 1.2.106.1 Youma 2002年02月14日 15:43

                      既出かもしれませんが 上記のバージョンで
                      PPA.DLLをExeファイルと同じフォルダにコピーしている状況で、
                      コマンド一覧(Shift+F1)を選ぶとメモリが読めないと死にます

                      気長に待ちますのでよろしくです。
                      • [1594] Re:Ver 1.2.106.1 やざき 2002年02月14日 15:52

                        ▼ Youmaさん
                        > 既出かもしれませんが 上記のバージョンで
                        > PPA.DLLをExeファイルと同じフォルダにコピーしている状況で、
                        > コマンド一覧(Shift+F1)を選ぶとメモリが読めないと死にます
                        >
                        > 気長に待ちますのでよろしくです。

                        ほんとにごめんなさいです。陳謝。

                        13日のお試し版では直ってると思います。
                        試してみてください(__;