在.NET中,进行程序间通信,可以使用的方法很多,比如.NET Remoting,WebService.等等..
但是使用上述方法太过于麻烦.不是很轻便..
在Win32中,一般要完成上述功能,方法也很多,一个比较通用的方法就是直接使用内存映射文件.Mapping File.
.NET FX1.0提供了P/Invoke,可能通过这个来直接调用Win32的API.这里我来演示一下这个方法.
要使用P/Invoke,我们得加入这个命名空间: System.Runtime.InteropServices
然后使用DllImportAttribute来导入我们所要用的Win32 API:
由于原始的API使用到了多个Enum,我们也实现这些个Enum,以方便以后的使用.
接下来,就是把这些函数进行封装了:)
这里,我把这些函数封装到一个Class中,其Class的定义如下:
注意: 加入上述DllImport函数.
通过这个方法,我们就可以直接使用MappingFile了.
示例代码如下:
到现在为止,关于Win32的MappingFile API就已封装好了~
我们可以直接在.NET应用程序中使用了:)
下载 : SharedMemory
注: 此代码参考于Gotdotnet上面的一个朋友的文章.