登录
注册
搜索
帮助
会员
界面
简洁版本
在线
SNS论坛
技术交流
MONO&.NET
CLR&Runtime
Mono中的DLLImport
帖子标题
新闻动态
SNS动态
SNS项目
SAF.NET
WOSIX
ezWinCE
技术交流
MONO&.NET
PostgreSQL数据库
操作系统
Linux/RHEL/CentOS
BSD/FreeBSD
Windows
软件开发
C&C++
Win32高级编程
Shell脚本编程
UNIX高级编程
GUI编程开发
综合交流区
布衣坊
软件下载
书籍与书评
Open Source
历史文化与故事
1
/ 1 页
1
跳转
页
查看:
1346
Mono中的DLLImport
enjoyo
admin
组别:
管理员
性别:
来自:
积分:
388
帖子:
374
注册:
2006-10-19
2008-01-22 18:44
|
只看楼主
树型
|
收藏
|
小
中
大
1
Mono中的DLLImport
在代码中引入第
3
方函数/动态链接库能增强我们自己编写的程序的功能和节省时间
.MS .Net
在处理中通过
DLLImport
来描述
.
同样的
Mono
也如同
MS .Net
一样,下面是一段示范代码
:
[DLLImport
(
"libc.so"
)]
private
static
extern
int
getpid
()
;
当然别忘了添加名称空间
:
System.Runtime.InteropServices
当执行这段代码时候,
.Net/Mono Runtime
会去尝试调用本地系统中的
libc.so
中
getpid(),
如果找到就执行
getpid().
反之就会抛出
DllNotFoundException
.
Windows dll
文件的搜索 那么一个关键性的问题
,DLLImport
是如何去寻找这些
DLL
文件呢
.
在
MSDN
中这样描述
:
1
、
Application
启动目录
2
、
System
目录
.
可以通过
Win32 API
GetSystemDirectory()
得到这个目录。
3
、
Windows
目录
.
可以通过
Win32 API
GetWindowsDirectory()
得到这个目录
4
、被环境变量
Path
标识的目录
当然如果还是无法找到你需要的
DLL
文件。但你有确实把它放置到以上任何一个中可以用在运行中用
regsvr32 %source_path%/target.DLL
来注册
DLL
linux
共享库搜索
Mono
是可以运行在非
Windows
平台上的。那么
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
标识的目录
提醒
:
如果使用了非托管支援的话,记得一定要继承
IDisposeable
接口,用经典的释放模式来释放非托管资源。
不过能使用
using(UnmanageResource ur=new UnmanageResource()){
//TODO : you work somesing
}
那样会更好
发送短消息
查看公共资料
查找该会员全部帖子
UID:
1
精华:
2
威望:
4
金钱:
84.45 元
状态:
离线
shg@sinoprise.com
20153462
<<
上一主题
|
下一主题
>>
1
/ 1 页
1
跳转
页
论坛跳转...
新闻动态
SNS动态
SNS项目
SAF.NET
WOSIX
ezWinCE
技术交流
MONO&.NET
安装使用
C#编程语言
MONO GUI
ASP.NET
Database Access(Ado.net)
WebService&Remoting
DotNET CF
CLR&Runtime
SharpDevelop/MonoDevelop
PostgreSQL数据库
PostgreSQL 中文化
PostgreSQL精华区
操作系统
Linux/RHEL/CentOS
BSD/FreeBSD
Windows
软件开发
C&C++
Win32高级编程
Shell脚本编程
UNIX高级编程
GUI编程开发
综合交流区
布衣坊
软件下载
书籍与书评
Open Source
历史文化与故事
我的主题
我的帖子
我的精华
帖子标题
空间日志
相册标题
作 者