当前位置: 首页 > news >正文

Mono里运行C#脚本34—内部函数调用的过程

本文来分析Mono运行脚本时,会调用一些C实现的函数代码。
而这个过程又是怎么样实现的呢?
比如前面分析的脚本:
IL_0000:  call string class MonoEmbed::gimme()
在这里会调用C函数实现的MonoEmbed::gimme()函数。

而这个函数是在C程序内部实现,通过下面的代码来注册到运行时:
    mono_add_internal_call ("MonoEmbed::gimme", (const void *)gimme);
这个函数的代码如下:
void
mono_add_internal_call (const char *name, gconstpointer method)
{
    add_internal_call_with_flags (name, method, MONO_ICALL_FLAGS_FOREIGN);
}

它又会调用add_internal_call_with_flags函数:
static void
add_internal_call_with_flags (const char *name, gconstpointer method, guint32 flags)
{
    char *key = g_strdup (n

http://www.lryc.cn/news/526305.html

相关文章:

  • rust feature h和 workspace相关知识 (十一)
  • -bash: ./uninstall.command: /bin/sh^M: 坏的解释器: 没有那个文件或目录
  • 【Redis】Redis入门以及什么是分布式系统{Redis引入+分布式系统介绍}
  • C#高级:常用的扩展方法大全
  • Consul持久化配置报错1067---consul_start
  • 「 机器人 」扑翼飞行器控制策略浅谈
  • Qt信号与槽底层实现原理
  • QT QTableWidget控件 全面详解
  • Flutter_学习记录_基本组件的使用记录
  • 基于JAVA的微信点餐小程序设计与实现(LW+源码+讲解)
  • 计算机毕业设计hadoop+spark+hive民宿推荐系统 酒店推荐系统 民宿价格预测 酒店价格 预测 机器学习 深度学习 Python爬虫 HDFS集群
  • 亲测有效!解决PyCharm下PyEMD安装报错 ModuleNotFoundError: No module named ‘PyEMD‘
  • Gin 应用并注册 pprof
  • Jenkins 启动
  • 第20篇:Python 开发进阶:使用Django进行Web开发详解
  • 文献引用指南ChatGPT提示词分享
  • 程序代码篇---C++类.c\.h
  • @RabbitListener处理重试机制完成后的异常捕获
  • Mac 上管理本地 Go 版本
  • 低代码系统-产品架构案例介绍、得帆云(八)
  • 免费GPU算力,不花钱部署DeepSeek-R1
  • JavaEE:多线程进阶
  • 不只是mini-react第二节:实现最简fiber
  • C++实现设计模式---命令模式 (Command)
  • 设计模式的艺术-享元模式
  • Linux的权限和一些shell原理
  • 【Postgres_Python】使用python脚本批量创建和导入多个PG数据库
  • Ubuntu安装GitLab
  • 网络知识小科普--5
  • JavaScript学习记录23