c# 共享内存使用方法

文章1:http://www.bianceng.cn/Programming/csharp/201107/27601_2.htm

相关的代码:

源码(工程文件)下载地址:

http://download.csdn.net/source/798731

本工程在以下环境下编译通过:

Windows XP SP3

Microsoft VisualC# 2005

Microsoft VisualStudio 2005 V8.0.50727.42

Microsoft .NET Framework V2.0.50727

/:

文章2: 百度的一篇文章 http://wenku.baidu.com/view/ebee66d0b9f3f90f76c61bf6.html

///
 文章3:原文:http://blog.csdn.net/yefanqiu/article/details/1717458


 VC++的共享内存操作代码实现起来相对比较容易,但是用C#语言来实现,就有一定难度,由于工作需要,把以前VC开发的共享内存代码要用C#实现,别说,还费了不少周折,毕竟C#操作API函数和地址指针不是那么直接,还好,总算完成了,效果还不错。

     

共享内存操作类:    

using  System;
using  System.Collections.Generic;
using  System.Text;
using  System.Runtime.InteropServices;

namespace  ShareMemLib
{
    
public  class  ShareMem
    {
        [DllImport(
" user32.dll " , CharSet  =  CharSet.Auto)]
        
public  static  extern  IntPtr SendMessage(IntPtr hWnd, int  Msg, int  wParam, IntPtr lParam);

        [DllImport(
" Kernel32.dll " , CharSet  =  CharSet.Auto)]
        
public  static  extern  IntPtr CreateFileMapping(int  hFile, IntPtr lpAttributes, uint  flProtect, uint  dwMaxSizeHi, uint  dwMaxSizeLow, string  lpName);
       
一篇关于CreateFileMapping使用方法的blog   http://blog.csdn.net/khuang2008/article/details/3949720
        [DllImport( " Kernel32.dll " , CharSet  =  CharSet.Auto)]
        
public  static  extern  IntPtr OpenFileMapping(int  dwDesiredAccess,[MarshalAs(UnmanagedType.Bool)] bool  bInheritHandle,string  lpName);

        [DllImport(
" Kernel32.dll " , CharSet  =  CharSet.Auto)]
        
public  static  extern  IntPtr MapViewOfFile(IntPtr hFileMapping,uint  dwDesiredAccess, uint  dwFileOffsetHigh, uint  dwFileOffsetLow,uint  dwNumberOfBytesToMap);

        [DllImport(
" Kernel32.dll " , CharSet  =  CharSet.Auto)]
        
public  static  extern  bool  UnmapViewOfFile(IntPtr pvBaseAddress);

        [DllImport(
" Kernel32.dll " , CharSet  =  CharSet.Auto)]
        
public  static  extern  bool  CloseHandle(IntPtr handle);

        [DllImport(
" kernel32 " , EntryPoint
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值