前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Mono P/Invoke :DLLImport

Mono P/Invoke :DLLImport

作者头像
张善友
发布2018-01-19 11:41:35
1.8K0
发布2018-01-19 11:41:35
举报
文章被收录于专栏:张善友的专栏张善友的专栏

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# DLLImport C++ dll 几点注意事项

Linux下给C#增加CopyMemory支持

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)

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2013-05-02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档