話蒸し返して悪いけど
>>286は間違っているからね
GDIplusのBitmapをmake_sharedしても問題ない

make_sharedはグローバルなアロケーターを使ってBitmapを確保するし
また、グローバルなアロケーターを使ってdeleteするから
整合性は保たれる
Bitmapは基底クラスにGDIplus独自のnew/deleteを持っているけど
make_sharedした場合は、これらは使われない
だから問題は起きない
Bitmap::FromFileのように、DLL内でBitmapをnewしてナマポを返す場合
クラス定義のdeleteを使わなければならないが
Bitmapの生成時にmake_sharedを挟み込む余地はないので
初めっから使えないし、問題は起きない

Bitmap::FromFileのように、DLL内でBitmapをnewしてナマポを返す場合
使い手が自分でdeleteするわけだけど、この時、DLLとアプリの間で
new/deleteが不一致になったらマズいので、自前のdeleteが定義してある
普通に delete bitmap; としても問題が出ないようにね
で、deleteを独自のものにしたのなら、newも独自のものに定義しとかないとマズいよね
ってことで、newも独自なものに定義してある

普通にnew/deleteした場合や、ナマポをshared_ptrに入れた場合は
クラス定義のnew/deleteが使われるので、これはこれで問題がない

常に確保した時と同じ方法で解放されるので問題が起きないって理屈