如何从本机 c 调用 C#(mono、.net)方法、委托

2023-12-28

是否可以从本机 C 代码调用以托管代码(可能在类或库中)编写的 C# 方法(以及如何调用)?

thx

编辑:对于“c#”,我主要指的是 mono 甚至 portable.net,操作系统是 Linux


您的 C 代码可以定义函数来注册回调。 C# 代码可以 P/Invoke 这些函数,并将托管委托作为参数传递。编组代码将透明地将它们转换为 C 函数指针。

或者,从 C 端处理它,您可以使用 Mono 嵌入 API 来加载程序集、查找 MonoMethods 并调用它们。

使用嵌入 API 要复杂得多。如果您的入口点是 C 语言,则必须使用嵌入 API,但简单地编写一个托管方法来执行回调注册和任何其他托管设置可能更容易,那么您只需加载并调用该单个方法来自 C 代码。

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

如何从本机 c 调用 C#(mono、.net)方法、委托 的相关文章

随机推荐

  • Android Smack 聊天客户端

    嗨 朋友们 我正在使用从以下网址下载的 Smack3 2 1 jar http www igniterealtime org downloads index jsp http www igniterealtime org downloads
  • 如何在 terraform 中使用嵌套循环

    我正在尝试使用 Terraform count 在 Azure 中创建 3 个虚拟机 每个虚拟机需要多个磁盘 有什么办法可以做到这一点吗 我尝试创建磁盘名称和大小的映射 但收到错误 无法同时使用 count 和 for each resou
  • Pickle Spark RDD 并将其读入 Python

    我正在尝试通过 pickle 来序列化 Spark RDD 并将 pickled 文件直接读入 Python a sc parallelize 1 2 3 4 5 a saveAsPickleFile test pkl 然后 我将 test
  • 类构造函数中选项对象的默认值

    我创建了一个类 我想为值设置一些默认选项 以防用户不提供任何参数 我最近使用了一个将多个参数传递给一个对象的构造函数 因为我相信当用户创建该类的新实例时 它有助于提高可读性 这是我之前的做法 module exports class Use
  • 根据 codeigniter 中的用户角色重定向到管理员和用户

    如果管理员正在登录 我希望他进入管理 仪表板 否则到用户仪表板 登录控制器如下 在用户表中 我有一列 角色 值为 1 和 2 1 代表管理员 2 代表用户 并且有单独的角色表 登录用户功能 public function login dat
  • 我可以将 MongoDB 配置为内存吗?

    我有兴趣使用一个能够实现高性能的数据库 并且预期需要集群进行大规模水平扩展 我们正在考虑使用 MongoDB 有谁知道我是否可以在内存中使用它 即在 RAM 中 出于性能原因 Tnx 截至今天 最新版本的 MongoDB 即 v3 4 在其
  • 使用OpenCV的Sobel运算计算图像梯度方向

    我正在尝试使用 OpenCV 的 Sobel 方法的结果来确定图像梯度方向 我知道这应该是一个非常简单的任务 我想我理解这个理论 但实现它比我想象的更具挑战性 我希望渐变方向在 0 360 度之间 但我的代码显示所有渐变都在 180 270
  • 如何从离开网站警报中获取文本?

    如何从离开网站警报中获取文本 我尝试使用切换到它driver switchTo alert 但我收到空白文本 I have also attached screenshot of alert 请在这方面帮助我 下面是我的代码 public
  • 既然 BluetoothAdapter.getDefaultAdapter() 已被弃用,我该使用什么?

    How do I fix the deprecation warning in this code Alternatively are there any other options for doing this val mBluetoot
  • Power BI:计算无法正常工作

    我有一个包含资源名称 资源所有者 项目名称 项目经理 工作量的表 对于每个资源所有者 我想计算借出的工作量 所有者的资源在除所有者项目之外的项目中花费的工作量 和借用的工作量 所有者的资源在除项目所有者之外的其他项目中花费的工作量 For
  • 从 Groovy 中的字符串中删除空格

    我有一个像这样的字符串 String str My name is Monda 我怎样才能实现像这样的字符串 str MynameisMonda 您可以使用replaceAll http docs groovy lang org lates
  • UITableView,如何捕捉动画结束?

    我有一个包含很多行的 UITableView 它就像一个手风琴 http docs jquery com UI Accordion http docs jquery com UI Accordion主单元有子单元 子单元也有子单元 所以这是
  • 使正则表达式准确匹配点文件

    所以我已经达到了我的正则表达式能力的极限 我这里有一个 python 正则表达式 用于将文件路径或文件 uri 与各个部分的命名捕获组相匹配 它似乎是工作文件 除了点文件 MATCH PATH re compile r P
  • 为什么 getNetworkOperator 对于 CDMA 不可靠?

    谁能说出为什么文档getNetworkOperator的函数TelephonyManager指出这可能会返回 CDMA 不可靠的结果 获取网络操作员文档 http developer android com reference androi
  • 如何检测视图元素何时在 Angular 中渲染?

    我的设置是一个带有可单击行的 Angular Material 数据表 单击一行时 其内容会内联显示在textarea进行编辑 我唯一的问题是 我尝试将输入焦点移动到显示的textarea 我尝试使用 ViewChild 但稍后会在单击处理
  • 删除分片分配过滤器

    我设置了一个分片分配过滤器 例如 PUT cluster settings transient cluster routing allocation exclude name node 1 如何删除或禁用此类设置 我尝试使用包含 但随后我设
  • 单元测试 Spring MissingServletRequestParameterException JSON 响应

    我在 Spring boot 休息控制器中有 POST 方法 如下所示 RequestMapping value post action bookmark method RequestMethod POST public ResponseB
  • 返回自定义验证器错误 Grails

    我只收到默认验证器消息 我究竟做错了什么 class Questao static hasMany alternativas Alternativa static constraints alternativas validator val
  • Play 框架 2.x 应用程序中作业/任务的调度/延迟

    在典型的 Web 应用程序中 有些事情我更愿意作为延迟的作业 任务来运行 它们往往具有以下部分或全部属性 需要很长时间 从几秒到几分钟到几个小时 大量占用部分资源 CPU 网络 磁盘 外部API限制等 结果不是立即需要的 没有它也能完成HT
  • 如何从本机 c 调用 C#(mono、.net)方法、委托

    是否可以从本机 C 代码调用以托管代码 可能在类或库中 编写的 C 方法 以及如何调用 thx 编辑 对于 c 我主要指的是 mono 甚至 portable net 操作系统是 Linux 您的 C 代码可以定义函数来注册回调 C 代码可