Mono P/Invoke :DLLImport
Mono 的初衷是为了吸引更多的Windows .Net程序员来加入Linux平台的开发。但在Linux世界中C语言依然是主流。很多时候一些关键应用(比如大型笛卡儿乘积运算、需要调用平台硬件功能的时候)不得不依赖C来完成。
Mono 通过DLLImport 来描述.下面是一段示范代码: [DLLImport ("libc.so")]
private static extern int getpid (); 当然别忘了添加名称空间:System.Runtime.InteropServices 当执行这段代码时候,Mono Runtime 会去尝试调用本地系统中的libc.so中getpid(),如果找到就执行getpid().反之就会抛出DllNotFoundException .
linux上DLLImport的搜索共享库顺序如下:
1、/lib,比如在/usr/lib 2、有绝大部分库文件都被缓存在 /etc/ld.so.cache中,该文件由 /etc/ld.so.conf编辑后并运行命令ldconfig产生.那么你可以在ld.so.conf中添加你需要so文件的目录之后运行ldconfig。 3、被用户环境变量LD_LIBRARY_PATH 标识的目录
相关文章:
如何利用C生成.so供Mono调用
C# .NET Interoperability with Native C Libraries on Cross Platform : PART I
C#.NET Interoperability with Native C Libraries on Cross Platform: PART II
P/Invoke Tutorial: Basics (Part 1)
P/Invoke Tutorial: Passing strings (Part 2)
P/Invoke Tutorial: Passing parameters (Part 3)
P/Invoke Tutorial: Pinning (Part 4)
- Dubbo(五) Dubbo入门demo——helloworld
- Dubbo(四) Dubbo-Admin项目 Dubbo管理台
- volley请求原理
- Dubbo(三) 安装Zookeeper 单机-集群
- ASP.NET MVC Preview生命周期分析
- Dubbo(二) 认识Zookeeper
- Kafka源码系列之使用要点总结及重要错误解决
- Kafka源码系列之实现自己的kafka监控
- Kafka源码系列之副本同步机制及isr列表更新
- Kafka源码系列之topic创建分区分配及leader选举
- Kafka源码系列之如何删除topic
- Kafka源码系列之kafka如何实现高性能读写的
- Kafka源码系列之分组消费的再平衡策略
- Kafka源码系列之Consumer高级API性能分析
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- Android 使用Vibrator服务实现点击按钮带有震动效果
- sprintf函数的使用
- Android实现定时任务及闹钟
- Android使用ftp方式实现文件上传和下载功能
- slenium模拟登陆知乎2020
- Android两种轮询的实现方法
- 汉诺塔问题
- Android实现雷达View效果的示例代码
- Android Studio 创建自定义控件的方法
- Android实现轮询的三种方式
- Flutter 状态管理的实现
- Android FTP服务器上传文件攻略(代码详解)
- Android 集成 google 登录并获取性别等隐私信息的实现代码
- android通过servlet上传文件到服务器
- 面向对象语言的三大特征: 封装 继承 多态(一)——封装