会员
周边
众包
新闻
博问
闪存
赞助商
所有博客
当前博客
我的博客
我的园子
账号设置
简洁模式
...
退出登录
注册
登录
Kevin Gao
Powered by
博客园
博客园
|
首页
|
新随笔
|
联系
|
订阅
|
管理
2011年11月21日
C# API 如何保证使用托管对象的平台调用成功
摘要: 三、如何保证使用托管对象的平台调用成功? 如果在调用平台 invoke 后的任何位置都未引用托管对象,则垃圾回收器可能将完成该托管对象。这将释放资源并使句柄无效,从而导致平台invoke 调用失败。用 HandleRef 包装句柄可保证在平台 invoke 调...
阅读全文
posted @ 2011-11-21 12:00 Kevin Gao
阅读(15)
评论(0)
推荐(0)
编辑
C# API 如何保证使用托管对象的平台调用成功
摘要: 三、如何保证使用托管对象的平台调用成功?如果在调用平台 invoke 后的任何位置都未引用托管对象,则垃圾回收器可能将完成该托管对象。这将释放资源并使句柄无效,从而导致平台invoke 调用失败。用 HandleRef 包装句柄可保证在平台 invoke 调用完成前,不对托管对象进行垃圾回收。例如下面:FileStream fs = new FileStream( "a.txt", FileMode.Open );StringBuilder buffer = new StringBuilder( 5 );int read = 0;ReadFile(fs.Handle, bu
阅读全文
posted @ 2011-11-21 11:59 Kevin Gao
阅读(607)
评论(0)
推荐(1)
编辑
C# API 调用格式和参数类型
摘要: 一、调用格式 using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码 //使用DllImportAttribute特性来引入api函数,注意声明的是空方法,即方法体为空。 [DllImport("user...
阅读全文
posted @ 2011-11-21 11:26 Kevin Gao
阅读(7)
评论(0)
推荐(0)
编辑
C# API 调用格式和参数类型
摘要: 一、调用格式using System.Runtime.InteropServices; //引用此名称空间,简化后面的代码//使用DllImportAttribute特性来引入api函数,注意声明的是空方法,即方法体为空。[DllImport("user32.dll")]public static extern ReturnType FunctionName(type arg1,type arg2,...);//调用时与调用其他方法并无区别可以使用字段进一步说明特性,用逗号隔开,如:[ DllImport( "kernel32", EntryPoint=
阅读全文
posted @ 2011-11-21 11:25 Kevin Gao
阅读(1613)
评论(0)
推荐(1)
编辑