如何从非托管代码使用托管代码?

2023-12-14

如何从本机 C++(非托管代码)调用 .NET 代码?我想将 .NET 代码公开给我的非托管 (C++) 应用程序,然后使用它们。更具体地说,我想从本机 C++ 调用 C# :)。我知道有很多方法,但你能告诉我每种方法的优缺点吗?顺便问一下,我不想使用 COM,那么现在有什么选择呢?

我是否可以将 C# 代码包装在 C++/CLI 中,然后从 C++ 调用它?如果是这样,我该怎么做?如何将 C# 包装在 C++/CLI 中,然后从 C++ 调用它?


我最近才写过相关文章。它是关于 Delphi 的,但这并不意味着它不能与 C++ 一起使用。

DELPHI 2009 中的.NET 组件

即使对 C++ 了解不多,我仍然知道 IUnknown 和 COM 兼容的接口引用应该可以在 C++ 中很好地使用(如果您需要传递对象,而不仅仅是结构)。

  • 您可以使用 Microsoft 的 C++/CLI 引用您的 C# 代码并将其导出为普通 DLL 函数。
  • 您还可以下载一个MSBuild任务我写道,它允许您直接从 C# 导出函数。类似于 DllImportAttribute 的使用方式。

此 C# 代码将导出一个函数“YourExportName”,可以像使用任何 C 兼容函数一样使用该函数。


class Sample
{
   [DllExport("YourExportName")]
   static int TestFunction(int left, int right)
   {
     return left + right;
   }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何从非托管代码使用托管代码? 的相关文章

随机推荐

  • 有没有办法配置 Python 日志记录来记录断言失败的内容或上下文?

    我正在运行测试用例 我想以这样的方式设置我的日志记录 使其自动记录测试失败的所有情况 但我想获得自定义响应 例如 如果断言失败我 我想获得对我的测试发出的请求的响应 而不仅仅是断言失败的默认消息 目前我只知道断言失败了 但不知道程序返回了什
  • Angular2 styleUrls 不加载外部样式

    正在开发 Angular2 应用程序 希望能够为公共内容和管理内容加载不同的样式 然而 Angular 似乎忽略了从外部源加载的样式 Component styleUrls http url to external styles 上面的代码
  • 创建一个包含 R 中出现次数的列[重复]

    这个问题在这里已经有答案了 我正在尝试向现有数据框添加一列 以便该列定义不同的每个用户都购买过的产品 一个玩具示例是 Customer Product 1 Chocolate 1 Candy 1 Soda 2 Chocolate 2 Cho
  • 如何清理和重新编码 R 调查数据中的检查所有适用的响应?

    我有一些调查数据 其中包含一些多重响应问题 如下所示 HS18 为什么在南非看病难 选择所有符合条件的 1 Too expensive 2 No transportation to the hospital clinic 3 Hospita
  • 如何构建采用资源 id 数组的 REST API

    我正在为我的项目构建 REST API 用于获取给定用户的 INFO 的 API 是 api com users USER ID 我还想允许客户端传递用户 ID 列表 如何构建 API 使其成为 RESTful 并接收用户 ID 列表 如果
  • HTML5 是否允许您在浏览器中与本地客户端文件交互

    我看过一些关于通过网页访问客户端计算机上的文件的帖子 即这个question 我正在尝试为我正在编写的某些算法采用 在云中持续更新 范例 以便我的用户只需访问网页即可访问最新版本 这要求程序 网页可以从一个目录开始 递归地检查其中的文件 并
  • ptTimeSelect JQuery TimePicker 插件问题

    我正在尝试使用 jQuery ptTimeSelect 插件http pttimeselect sourceforge net example index html 这是来自 aspx 的代码
  • 如何使用 DirectShow.NET C# 访问音频流

    我想做的是将任意音频文件传递到 DirectShow 过滤器 并最终使用 NET 3 5 C 和 DirectShow NET 接收 PCM 音频 流对象 我想说的是 Stream OpenFile string filename and
  • 条件编译和 Objective-C/Xcode

    因此 我正在开展一个学习项目 并尝试创建一个包含 URL 存储的头文件 以便您只需更改单个标志即可从调试更改为生产 这就是我试图用编译器做的事情 这显然是错误的 我找不到任何有关如何在 Objective C 中执行此操作的信息 所以这就是
  • SIMD 对超标量乱序 CPU 有什么好处?

    我一直在阅读最近可用的 AVX 512 说明 我觉得有一个基本概念我不理解 对于已经执行乱序执行的超标量 CPU SIMD 有什么好处 考虑以下伪汇编代码 使用 SIMD load 16 floats to register simd a
  • 异步更新 UI?

    考虑这个例子 Private Sub Button Click sender As Button e As RoutedEventArgs Handles btn Click sender IsEnabled False Thread Sl
  • ec2:无法在 Windows 实例上打开端口 5080 [已关闭]

    Closed 这个问题不符合堆栈溢出指南 目前不接受答案 我对 ec2 防火墙设置等还很陌生 所以我可能会遗漏一些明显的东西 但是 我创建了一个 Windows 入门 实例 具有指定 5080 的安全组 并且与弹性ip关联 在实例上我有一个
  • 如何在成员函数中使用“this”?

    我编写了 Node 类的成员函数来按后缀顺序读取节点树 它将由作为树的根节点的 Node 实例调用 所以 N postfix 这些似乎是非法的 this gt left postfix this gt right postfix 执行此操作
  • 将十进制年份转换为日期

    我的表格中有日期存储为十进制年份 一个例子是2003 024658这翻译成January 9 2003 我想将十进制年份转换为 Oracle 的日期格式 我发现有人在 Excel 中完成了此操作 十进制年份至今的公式 DATE INT B1
  • 读取Excel文件获取unicode

    我正在用 pandas 读取 Excel 文件 当我在 microsoft excel 中打开文件时 我得到这样的输出 当我在 libre office 中看到这个文件时 我得到了这样的输出 因此 在阅读Excel文件时 我执行了以下代码
  • Tensorflow:如何通过名称获取张量?

    我无法按名称恢复张量 我什至不知道这是否可能 我有一个创建图表的函数 def create structure tf x input size dropout with tf variable scope scale 1 as scope
  • 如何在 PHP 生成的 HTML 中将 URL 编码为 javascript 字符串?

    给定这个 PHP 代码 a 这将起作用 因为json encode已经返回带引号的 JavaScript 表达式 和htmlspecialchars需要转义可能的 HTML 元字符 a
  • 在Java Applet中调用Web服务方法

    我成功构建了一个简单的Java Web Service 作为例子你可以参考 构建简单的网络服务 在 Eclipse 中 使用教程中指出的 Java Web 服务代理技术 可以轻松创建 Web 服务客户端 我想运行一个 Java Applet
  • Visual C++ Express 如何运行该应用程序?

    我不知道如何在 Visual C Express 中运行应用程序 调试选项就在那里 但是运行应用程序怎么样 我检查了上面的每个按钮 并右键单击了所有可以单击的按钮 但我没有看到运行它的选项 无需调试 我不介意调试 但我丢失了 main 正在
  • 如何从非托管代码使用托管代码?

    如何从本机 C 非托管代码 调用 NET 代码 我想将 NET 代码公开给我的非托管 C 应用程序 然后使用它们 更具体地说 我想从本机 C 调用 C 我知道有很多方法 但你能告诉我每种方法的优缺点吗 顺便问一下 我不想使用 COM 那么现