管理対象文字列に共有ポインタを使用したいのですが、構文がわかりません。共有ポインタを作成するには、を呼び出すアロケータが必要Marshal::StringToHGlobalAnsi(managedString)
です。ポインタを解放するには、カスタム削除者はを呼び出す必要がありますMarshal::FreeHGlobal
。私は次のようなものを探しています:
std::shared_ptr<IntPtr> managedFilename(Marshal::StringToHGlobalAnsi(videoFilename),
Marshal::FreeHGlobal); // does not compile
コンパイラーはvideoFilename
パラメーターとIntPtr
-to-void変換を窒息させています。
私はこれを従来のCで動作させています。ただし、STLを使用したい。