托管 C++ ^ (句柄) --> 它是什么以及它与引用和指针有何关系

2024-02-17

托管 C++ 中对象的句柄有什么区别

such as:

System::String^ str = gcnew System::String();

和普通的 C++ 指针?

另外它们与我们在 C# 中的引用有何关系?


您不是在谈论(较旧的)托管 C++,而是在谈论 C++/CLI,对吧?

在 C# 中,您的代码相当于

System.String str=new System.String();

在 C++/CLI 中,对象的句柄与 C# 中的引用相同 - 有引用计数、垃圾收集器等。

另一方面,普通 C++ 指针(在大多数情况下)是指向非托管对象的指针。 (当然)您可以使用 C++ 指针来指向托管对象,就像在 C# 中使用指针一样(在不安全的代码中)。看here http://www.c-sharpcorner.com/UploadFile/rajeshvs/PointersInCSharp11112005051624AM/PointersInCSharp.aspx有关 C# 中指针的详细说明,以及here http://en.wikipedia.org/wiki/C%2B%2B/CLI有关 C++/CLI 中指针的一些详细信息。这些指针不由垃圾收集器处理。

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

托管 C++ ^ (句柄) --> 它是什么以及它与引用和指针有何关系 的相关文章

  • Unable to determine the device handle for GPU 0000:01:00.0: GPU is lost.问题排坑

    在运行maskrcnn时 xff0c 会碰到训练不动的问题 xff0c 就卡在这儿 UserWarning Converting sparse IndexedSlices to a dense Tensor of unknown shape
  • esp32 event loop handle 代码

    span class token macro property span class token directive hash span span class token directive keyword include span spa
  • 如何从非托管 C++ 调用托管 C++ 方法

    请参阅下面的更新 已解决 我也将其扩展为第二个问题在非托管 C 程序中实现 C DLL COM 文件 我已经在互联网的尽头对此进行了研究 但没有找到一个真实的 可理解的 人类的例子来说明如何做到这一点 我有一个用于加密和解密文本的 C DL
  • 在 Matlab 中通过函数句柄传递附加参数

    我有一个需要优化的函数 比如 Matlab 中的 Function 该函数取决于我想要优化的变量 例如 x 和一个不需要优化的参数 例如 Q 因此 函数 Function x Q 换句话说 我有一个 Q 值数组 并且想要为每个 Q 找到最佳
  • 管理 .NET 应用程序在终止/终止时正常关闭

    我们有一个具有许多前台线程的 NET 控制台应用程序 如果我们使用任务管理器终止进程或从 Windows 命令行发出killjob kill 是否有一种方法可以优雅地关闭应用程序 在 net 控制台应用程序中添加托管代码 例如拥有一个函数被
  • Delphi:检查文件是否正在使用

    我想写入 删除文件 但有时如果该文件正在被另一个程序使用 我会崩溃 如何检查文件是否被其他进程打开或者我可以打开它进行写入 问题是 在您检查是否可以获得独占访问权限和打开文件之间 其他东西获得了对该文件的独占访问权限 无论如何您都会收到异常
  • 从 dll 导出带有 clr 参数的函数?

    我有一个遗留的托管 c dll 我需要调用一些返回托管类型的函数 对于没有托管类型的 dllexports 这很简单 我只需在标头中定义静态 c 函数 如下所示 extern C declspec dllexport int cdecl I
  • 是否可以在没有 try 块的情况下测试函数句柄?

    是否可以将以下代码替换为不使用异常的代码 手柄x是提供的句柄 我想在使用之前测试它的有效性 有实际的代码来支持句柄 x notreallyafunction try x catch disp Sorry function does not
  • 注册为自定义文件类型的默认应用程序

    注册即可打开自定义类型的文件 假设我有 cool 文件 如果用户尝试打开它 Android 会询问他们是否愿意使用我的应用程序打开它 如何 您可以将以下内容添加到必须打开文件 在我们的例子中为 pdf 的活动内的 AndroidManife
  • 使用 cmake 将 clr 支持设置为 true

    我正在尝试使用 cmake 生成托管 C 代码 下面是我添加的脚本 SET TARGET PROPERTIES PROJECT NAME PROPERTIES COMPILE FLAGS clr STRING REPLACE EHsc EH
  • C++/CLI:为什么我不能通过引用传递字符串?

    为什么 Microsoft 的 C CLI 不允许我通过引用传递字符串 我收到以下错误 C3699 无法在类型 System String 上使用此间接寻址 首先 NET 实际上有两种 Microsoft 特定的 C 方言 较旧的 托管 C
  • EndUpdateResource() 抛出错误 110 系统无法打开在输出位置打开 windowsexplorer 时指定的设备或文件

    仅当在 D test output 可执行文件复制到的位置 打开 Windows 资源管理器时 以下代码才会在 EndUpdateResource 调用上引发 110 错误 std ifstream in C Windows notepad
  • 查找 WPF 窗口的句柄

    Windows 窗体有一个属性 win1 Handle 如果我记得的话 它返回主窗口句柄的句柄 有没有等效的方法来获取 WPF 窗口的句柄 我在网上找到了以下代码 IntPtr windowHandle new WindowInteropH
  • 托管 C++ ^ (句柄) --> 它是什么以及它与引用和指针有何关系

    托管 C 中对象的句柄有什么区别 such as System String str gcnew System String 和普通的 C 指针 另外它们与我们在 C 中的引用有何关系 您不是在谈论 较旧的 托管 C 而是在谈论 C CLI
  • 如何在Matlab中区分图例和轴?

    下面的堆栈溢出问题 Matlab 如何获取图形句柄中的所有轴句柄 https stackoverflow com questions 3938348 matlab how to obtain all the axes handles in
  • Django 中多个视图中的相同 URL

    我正在开发一个网络应用程序 我需要这样的东西 url r collection views home name home url r collection views main name main 如果用户已通过身份验证 则转到 main
  • 我如何判断给定的 hWnd 是否仍然有效?

    我正在使用生成 Internet Explorer 实例的第三方类 该类有一个属性 hWnd 它返回进程的 hWnd 稍后 我可能想重用应用程序的实例 如果它仍然存在 因此我需要告诉我的帮助器类附加到它 在此之前 我想知道给定的 hWnd
  • 如何在.NET 中获取当前窗口句柄计数和窗口句柄限制?

    我想在C 中获取当前窗口句柄数和系统范围的窗口句柄限制 我该怎么办 如果你读过 Raymond Chen 的帖子 你可能会像我一样觉得它很烦人 您只是 可能做错了什么 因为您正在做 Windows 无法完成的事情 在我的应用程序中 当用户第
  • 从另一个桌面捕获屏幕截图

    我使用创建了第二个桌面CreateDesktop我不会切换到它 我还在其中创建了一些进程 例如 Explorer exe 和 Winrar exe 接下来我有一个代码 它将当前桌面的屏幕截图保存到剪贴板 CreateDesktop 和 Sc
  • Asp.net 调用 C# 层调用托管 C++ 调用本机 C++

    我的项目结构如下 ASP NET呼叫C 层调用ManagedC 调用Native C 我试图避免使用互操作 所以这就是托管 C 层的原因 我编写了测试 C 层的单元测试 它工作得很好 当我尝试运行 asp net 页面时 我得到 Could

随机推荐