托管 C++/CLI 类中的 auto_ptr 或 shared_ptr 等效项

2024-03-24

在 C++/CLI 中,您可以在托管类中使用本机类型,因为不允许在托管类中保存本机类的成员:在这种情况下您需要使用指针。

这是一个例子:

class NativeClass
{
....
};


public ref class ManagedClass
{
private:
  NativeClass mNativeClass; // Not allowed !

  NativeClass * mNativeClass; // OK

  auto_ptr<NativeClass> mNativeClass; //Not allowed !
  boost::shared_ptr<NativeClass> mNativeClass; //Not allowed !

};

有谁知道 C++/CLI 世界中的shared_ptr 的等价物吗?

编辑: 感谢您的建议“1800-信息”。根据您的建议,我检查了 STL.Net,但它仅适用于 Visual Studio 2008,并且它提供容器+算法,但没有智能指针。


我找到了答案代码项目 http://www.codeproject.com :

Nishant Sivakumar 发表了一篇关于此的文章:http://www.codeproject.com/KB/mcpp/CAutoNativePtr.aspx http://www.codeproject.com/KB/mcpp/CAutoNativePtr.aspx

在此页面上,还可以查找 Denis N. Shevchenko 的评论:他提供了一个类似 stl 的实现,效果非常好。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

托管 C++/CLI 类中的 auto_ptr 或 shared_ptr 等效项 的相关文章

随机推荐

  • 如何在bash中的变量中转义通配符扩展?

    如何转义变量名中的通配符扩展 CP lib COMMAND java VARIABLES cp CP SomeClass echo COMMAND 回显该命令始终会导致通配符扩展 echo COMMAND 使用引号可以防止 glob 被扩展
  • 当应用程序以不同用户身份运行时,如何获取当前登录的用户名和帐户类型(admin、nonadmin)

    In C 如果应用程序由不同用户执行 如何获取当前登录的 Windows 用户Run as WindowsIdentity GetCurrent 总是给出Run as用户或模拟用户 我只想要Windows登录的用户名和用户帐户类型 据我所知
  • 从浏览器运行 Python 应用程序

    我对编程还很陌生 我一直在业余时间学习Python 作为对自己的挑战 我为课堂项目创建了一个简单的文本冒险 这不是一个编程课程 因此教授不知道如何编译原始 Python 脚本 更不用说在他们的 Mac 上安装 Python 解释器了 话虽这
  • Azure 云部署失败:找不到带指纹的证书

    我正在开发一个基于 Web API 的 Web 服务 托管在 Azure 上 我正在使用 Azure 1 8 SDK 当我尝试部署云服务时 上传需要很长时间 然后我收到一条错误消息 其中显示 12 09 52 PM Error The ce
  • 在 MS SQL (mssql) 中查找阻塞/锁定查询

    Using sys dm os wait stats我已经确定了我认为的锁定问题 wait type waittime pct running ptc LCK M RS S 2238 54 22 14 22 14 LCK M S 1980
  • 浮点的 == 和 != 全局重载

    重载全局运算符是一种不好的做法吗 and 对于浮点 我在游戏环境中使用快速浮点 并且我正在考虑在任何地方使用模糊比较 因为我无法想象我不希望非常接近的数字不相等的情况 有什么建议吗 你不能 C 运算符重载必须至少涉及一种用户定义的类型 即使
  • 更改重复键阈值 C++

    我正在构建一个 C 俄罗斯方块游戏 不是 C Net 我感觉我的控制很奇怪 我想要做到这一点 以便当用户按下其中一个箭头键时 按住它大约 10 毫秒将启动 Windows 的重复功能 默认设置为 500 毫秒左右 对于我的游戏来说太延迟了
  • Bash shell 脚本检查器

    我必须编写一个脚本 它获取一个文本文件 其中包含 9 行和行中的 9 个数字 1 9 例如 123456789 234567891 345678912 456789123 567891234 678912345 789123456 8912
  • 在 JavaScript 中使用 filter() 查找两个未排序数组的交集的 Big O

    我刚刚开始学习 Big O 表示法 我试图理解不同函数的 Big O 看看哪个更好 我正在努力计算时间和空间复杂度对于以下代码 function findCommonElem arr1 arr2 let result arr1 filter
  • 如何在本地恢复`.git/index`?

    我不小心删除了 git index 有办法恢复吗 它已被永久删除 我还没有做出任何事 要重建索引文件 您可以尝试以下两个命令 git reset re scan the working directory git add u update
  • 任务“:app:kaptDebugKotlin”执行失败。当干净构建时

    我在使用 cmd 构建项目时遇到问题 当我使用 android studio 构建项目时没问题 但是当我清理项目然后使用 cmd 构建时出现错误 这个命令 gradlew assemble调试 这个错误 失败 构建失败并出现异常 什么地方出
  • 将 scala 2.10 future 转换为 scalaz.concurrent.Future // 任务

    有人找到了如何将 scala 的 Future 2 10 正确转换为新的 scalaz7 future 的代码吗 我知道很想通过 scala Promise 将 scalaz future 转换为 scala Future 但不知道如何正确
  • 获取当前正在运行的应用程序

    如何获取当前正在运行的应用程序 我想检查应用程序是否正在运行或不在服务中 我为此使用了以下代码 ActivityManager activityManager ActivityManager this getSystemService AC
  • Swift - Firebase 函数signInWithEmail 在第一次调用时不执行

    IBAction func loginEmailButton sender AnyObject FIRAuth auth signInWithEmail email text password password text completio
  • WPF 中透明背景变黑

    我尝试创建一个带有圆角的窗口 我将窗口背景设置为透明并将边框背景设置为白色 然而 在边框和窗口之间的区域 我得到黑色背景而不是透明背景 我在 Windows 7 上使用 C WPF VS2010 进行开发 下面是我的 XAML 和屏幕截图
  • 将具有循环结构的 JS 对象存储在本地存储中,并在重新加载时获取循环结构

    我想存储 本地存储 HTML5 JS 对象 为此 我必须申请JSON stringify obj 到我想要存储的JS对象 之后我就可以存储该对象localStorage obj JSON stringify obj 但有些 JS 对象非常大
  • 请教 php 总结 01 + 01 = 02

    我想在数据库中创建一个id id user gt 数据类型 varchar 我希望我的 id 从00 01 02 等等 为了创建新的 id 我对所有行进行计数 并且计数的结果将添加 01 Example id array 00 01 02
  • 处理块、完成处理程序、dispatch_async 与dispatch_sync

    我正在线程中执行在线数据获取 并且我想在执行块后立即执行某些操作 这是我的代码 IBAction refresh UIBarButtonItem sender NSLog checking self editToolbar dispatch
  • HM10 ble改变特征值AT命令Arduino

    谁能帮我用AT命令写入特征值 或者如何使用Hm10模块将数据从arduino发送到另一个ble设备 HM10发送AT START后 会通告数据包 并且可以检测服务和特征 但特征值是默认的0x00 如何更改 多次检查数据表 但找不到能够执行相
  • 托管 C++/CLI 类中的 auto_ptr 或 shared_ptr 等效项

    在 C CLI 中 您可以在托管类中使用本机类型 因为不允许在托管类中保存本机类的成员 在这种情况下您需要使用指针 这是一个例子 class NativeClass public ref class ManagedClass private