我想对托管字符串使用共享指针,但我无法弄清楚语法。要创建共享指针,我需要一个分配器来调用Marshal::StringToHGlobalAnsi(managedString). 要释放指针,自定义删除器应调用Marshal::FreeHGlobal. 我正在寻找类似的东西:
std::shared_ptr<IntPtr> managedFilename(Marshal::StringToHGlobalAnsi(videoFilename),
Marshal::FreeHGlobal); // does not compile
编译器正在阻塞videoFilename参数和IntPtr-to-void 转换。
我有这个在传统的 C 中工作;但是,我想使用 STL。