共有メモリにあるポインタ変数に対してnewとかしても、そのエリアは共有じゃないよ

あくまで

#pragma data_seg("SHAREDMEM")
〜
#pragma data_seg()

とかで囲んだエリアが共有。

ここの中の変数にnewしたアドレスを入れて、別アプリに渡そうとしても、newしたメモリ空間は元アプリ固有のものだから、
そのアドレス使ったら、あっさり死ぬよ。


※追記
共有メモリ上にオブジェクトをつくってみました

でもこれはcygwinとかインストールしないと使えないやつみたい。

VC++だけでやるならメモリマップドファイル使うしかない。

でもクラス内部でnew使ったりする可能性があるクラスだと、結局共有メモリ外のメモリが使われちゃうから、期待したような共有はできないとおもう。