>CShareData m_cShareData;
>を、クラスメンバに持っていったら死ななくなりました。
デストラクタでUnmapView していますから,CShareDataがいなくなるとアドレスの先のメモリが消えちゃうんですね.ということは,DLLSHARE* とCShareData の存続期間は同一である必要がありますね.
やざきさんのCPPA.cppとCSMacroManager.cppを見たところいくつか問題点が見つかりました.とりあえず
・上記問題に関連して,CEditViewのCShareData.cppを共用しているがオブジェクトの存続期間がきちんと考慮されているか.
・CSMacroManager.cppのコンストラクタでnewしているManagerがどこでもdeleteされていない.
時間ができたらもう少し見直してみます.
>PPA.DLLのありなしで変わるのはよくわかりません。
同一プロセスから複数回 mapした場合には同じアドレスが返されてOS内部の参照カウンタが増えるだけだから,にしてはCEditView等が既に使っているはずではありますが.同じアドレスが返されること「も」あるのかな?