求解:在线等~~~ C# 共享内存 问题,CeateFileMapping 不是C#的就不要灌水了 只在C++看过FILEMAP,不过,如果是字符串的问题,你不妨把C#的字符串打散,以字符数组的形式存储 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 共享内存是比较难控制的,我以前用,现在全部改为socket通讯了。呵呵 这是一个联网的项目,socket 也得做的,共享内存是为本机客户端调用,socket做网络传输,我们项目经理不可理喻,如果用vc我10分钟就搞定了,换C#做这个东东,实在是不怎么样 看看这个对你有没有帮助http://www.cnblogs.com/jiangyh-is-me/archive/2006/06/05/417381.aspx 想了解这个问题的可以在QQ上问我.30267814 或E-mail:[email protected] Net_Cover(倒栽葱) ( ) 信誉:100 Blog 2007-03-28 09:04:16 得分: 0 我靠,你顶个啥,我是求解哦,你顶一下就能把问题解决? --------------------------------------------------------典型的傻X,不顶帖子就沉了。 最后字符串问题的解决办法,引入API memcpy代码如下: [DllImport("ntdll.dll", CharSet = CharSet.Auto)] public static extern IntPtr memcpy( IntPtr dst, string src, int count);......写:IntPtr memFileHandle = CreateFileMapping(INVALID_HANDLE_VALUE, IntPtr.Zero, PAGE_READWRITE, 0, (uint)1024, "mWeightData1"); if (memFileHandle == IntPtr.Zero) { MessageBox.Show("建立共享失败"); } else { ///IntPtr h_pmw = MapViewOfFile(memFileHandle, FILE_MAP_WRITE, 0, 0, (uint)100); IntPtr h_pmw = MapViewOfFile(memFileHandle, FILE_MAP_WRITE, 0, 0, 0); int s = Marshal.SizeOf(mwd); if (h_pmw == IntPtr.Zero) { MessageBox.Show("建立映射失败"); } else { memcpy(h_pmw,textBox1.Text, textBox1.Text.Length*2); } }.......读:IntPtr mMapHandle = OpenFileMapping( FILE_MAP_READ,false,"mWeightData1"); if(mMapHandle == IntPtr.Zero) { MessageBox.Show("打开共享失败,请确认服务已启动"); } else { WeightData mrw = new WeightData(); IntPtr h_rw = MapViewOfFile(mMapHandle,FILE_MAP_READ,0,0,0);//(uint)100 textBox2.Text =(string) Marshal.PtrToStringAuto(h_rw);//PtrToStringAnsi(h_rw,256); } 问一下线程之间是怎么协调工作的 简单的问题 C# 控制网页中的JS 批量修改10W条数据的优化方案,求赐教 DataView设了RowFillter后,如何得到过滤后的数据集? 关于错误"OleDbCommand 是当前正忙的 Open, Fetching" 帮我绑我 gogogo 请教,ole控件中嵌入word文档,如何支持多页 关于listview的selecteditem的item项如何得到的问题?在线等待!万分感谢!!! VS.net发布会 大家就知道动态天气图片那里有下载的呀,就是下雨什么的能够显示下雨,的效果 *******向高手们请教一个解决方案,急!!********
http://www.cnblogs.com/jiangyh-is-me/archive/2006/06/05/417381.aspx
我靠,你顶个啥,我是求解哦,你顶一下就能把问题解决?
--------------------------------------------------------
典型的傻X,不顶帖子就沉了。
代码如下: [DllImport("ntdll.dll", CharSet = CharSet.Auto)]
public static extern IntPtr memcpy(
IntPtr dst,
string src,
int count);
......写:IntPtr memFileHandle = CreateFileMapping(INVALID_HANDLE_VALUE, IntPtr.Zero, PAGE_READWRITE, 0, (uint)1024, "mWeightData1");
if (memFileHandle == IntPtr.Zero)
{
MessageBox.Show("建立共享失败");
}
else
{
///IntPtr h_pmw = MapViewOfFile(memFileHandle, FILE_MAP_WRITE, 0, 0, (uint)100);
IntPtr h_pmw = MapViewOfFile(memFileHandle, FILE_MAP_WRITE, 0, 0, 0);
int s = Marshal.SizeOf(mwd);
if (h_pmw == IntPtr.Zero)
{
MessageBox.Show("建立映射失败");
}
else
{
memcpy(h_pmw,textBox1.Text, textBox1.Text.Length*2);
}
}.......
读:
IntPtr mMapHandle = OpenFileMapping( FILE_MAP_READ,false,"mWeightData1");
if(mMapHandle == IntPtr.Zero)
{
MessageBox.Show("打开共享失败,请确认服务已启动");
} else
{
WeightData mrw = new WeightData();
IntPtr h_rw = MapViewOfFile(mMapHandle,FILE_MAP_READ,0,0,0);//(uint)100
textBox2.Text =(string) Marshal.PtrToStringAuto(h_rw);//PtrToStringAnsi(h_rw,256);
}