- 浏览: 223537 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
synack:
写的很好,图文并茂,语言简单清晰,赞!
SkipList 跳表 -
king_c:
jiandandecaicai 写道你好,请教一下是如何通过E ...
从Hadoop URL 中读取数据 -
jiandandecaicai:
你好,请教一下是如何通过Eclipse来连接Hadop机群的, ...
从Hadoop URL 中读取数据
Creating Named Shared Memory
To share data, multiple processes can use memory-mapped files that the system paging file stores.
First Process
#include <windows.h> #include <stdio.h> #include <conio.h> #define BUF_SIZE 256 TCHAR szName[]=TEXT("Global\\MyFileMappingObject"); TCHAR szMsg[]=TEXT("Message from first process"); int main() { HANDLE hMapFile; LPCTSTR pBuf; hMapFile = CreateFileMapping( INVALID_HANDLE_VALUE, // use paging file NULL, // default security PAGE_READWRITE, // read/write access 0, // max. object size BUF_SIZE, // buffer size szName); // name of mapping object if (hMapFile == NULL) { printf("Could not create file mapping object (%d).\n", GetLastError()); return 1; } pBuf = (LPTSTR) MapViewOfFile(hMapFile, // handle to map object FILE_MAP_ALL_ACCESS, // read/write permission 0, 0, BUF_SIZE); if (pBuf == NULL) { printf("Could not map view of file (%d).\n", GetLastError()); return 2; } CopyMemory((PVOID)pBuf, szMsg, strlen(szMsg)); _getch(); UnmapViewOfFile(pBuf); CloseHandle(hMapFile); return 0; }
Second Process
#include <windows.h> #include <stdio.h> #include <conio.h> #define BUF_SIZE 256 TCHAR szName[]=TEXT("Global\\MyFileMappingObject"); int main() { HANDLE hMapFile; LPCTSTR pBuf; hMapFile = OpenFileMapping( FILE_MAP_ALL_ACCESS, // read/write access FALSE, // do not inherit the name szName); // name of mapping object if (hMapFile == NULL) { printf("Could not open file mapping object (%d).\n", GetLastError()); return 1; } pBuf = (LPTSTR) MapViewOfFile(hMapFile, // handle to map object FILE_MAP_ALL_ACCESS, // read/write permission 0, 0, BUF_SIZE); if (pBuf == NULL) { printf("Could not map view of file (%d).\n", GetLastError()); return 2; } MessageBox(NULL, pBuf, TEXT("Process2"), MB_OK); UnmapViewOfFile(pBuf); CloseHandle(hMapFile); return 0; }
这个例子的意思是,进程1开一个叫"Global\\MyFileMappingObject"的共享内存,然后把一片数据"Message from first process"拷到共享内存里面,然后等待用户的_getch()。这时,进程2开始运行,它以相同的名字"Global\\MyFileMappingObject"打开共享内存,把进程1放在里面的数据"Message from first process"读出来,然后退出。接着用户实施_getch(),进程1也退出,共享内存被撤销。
发表评论
-
c++引用计数的本质
2015-03-24 14:26 1361为什么要用引用计数? 场景:代码里X是一个 ... -
COM 数组传输-使用VARIANT传递数组的方法及步骤 .
2015-02-16 17:22 21在使用COM/DCOM写组件时经常要传递数组,一般比如SHO ... -
MFC程序中打印调试信息
2015-01-20 22:11 11111、在要打印调试的类中加上头文件 #include ... -
opencv轮廓提取与轮廓拟合
2015-01-05 09:55 2085#include <iostream> #i ... -
c语言操作二进制文件fopen中fseek的注意事项
2014-11-22 01:04 1242今天在使用fopen的时候,遇到了fseek(fp,0 ... -
C++中delete和delete[]的区别
2014-11-21 23:41 702一直对C++中的delete和delete[]的区别不甚 ... -
缺少streams.h的解决方法
2014-10-09 17:19 1107这几天在学DirectShow的开发,一个streams. ... -
使用ATL创建进程外组件
2014-03-24 22:39 1233一、建立一个进程外组件1)打开菜单File|New,选择Pr ... -
vector 转换成 数组 - [C++]
2013-12-13 18:06 4727参考: http://topic.csdn.n ... -
ref:Windows 上静态编译 Libevent 2.0.10 并实现一个简单 HTTP 服务器
2013-09-09 00:21 843原文地址:http://www.s135.com ... -
openMP
2013-06-08 23:32 993最近在看多核编程。简单来说,由于现在电脑CPU一般都有两 ... -
nafxcw.lib与LIBCMT.lib在vs2008中链接冲突解决方案
2013-05-09 09:51 10501>正在链接...1>nafxcw.lib(af ... -
Errore HTTP 404.2 - Not Found" IIS 7.5 请求的内容似乎是脚本,因而将无法由静态文件处理程序来处理
2012-11-20 17:46 987如题,这个错误google时一大堆各种各样的解决办法,但 ... -
JAVA中的数据存储(堆及堆栈)
2012-11-06 21:40 1092在JAVA中,有六个不 ... -
error : Please use the /MD switch for _AFXDLL builds 的解决方法
2012-09-20 21:14 2765在用vs打开项目后,编译的时候出现“Please use ... -
使用Signature Tool自动生成P/Invoke调用Windows API的C#函数声明
2012-03-17 22:47 1285在网上看到很多网友在.NET程序中调用Win32 API, ... -
c语言内存分配 2
2012-02-21 18:00 907二、栈(stack)和堆(heap)具体的区别。 ... -
(转)关于栈、堆、静态存储区最大可分配大小的探讨 --海量之一
2012-02-20 21:56 1787中午看《编程之美》的第2.5节中有这么一小段程序: floa ... -
向上取整
2012-02-12 16:30 1360假设变量x和n ... -
lib and dll
2012-01-12 14:04 869使用静态调用方式时,需要将在生成动态链接库时产生的lib ...
相关推荐
《MSDN98中的"walker"(又名"pwalk"):深入解析进程内存管理》 在IT领域,理解并掌握进程内存管理是至关重要的技能之一。MSDN98中的一个经典示例"walker"(又称"pwalk"),为我们提供了一个深入了解进程内存使用...
【标题】"msdn资源共享"指的是一个专门用于获取MSDN资源的软件,它是由易语言编写的,并且已经通过了360安全检测,确保了软件的安全性。 【描述】MSDN(Microsoft Developer Network)是微软为开发者提供的一系列...
【标题】"MSDN的CSocket例子chatter"是一个基于微软MSDN提供的示例,用于演示如何使用MFC(Microsoft Foundation Classes)中的`CSocket`类进行网络通信。`CSocket`是MFC对Windows Sockets(Winsock)API的一个封装...
**工作流基础与MSDN教程概述**...通过这个例子,开发者可以了解如何创建、管理和调试工作流,同时掌握如何将业务逻辑融入其中。无论你是初学者还是经验丰富的开发人员,这个教程都能帮助你更好地理解和应用工作流技术。
这包括了C++语言标准的解释、STL(Standard Template Library)的使用、异常处理、内存管理、多线程编程等内容。对于MFC部分,MSDN会详细解释各个类的功能、成员函数的用法以及如何在实际项目中应用。 在实际开发...
在“MSDN中所有MFC例子源代码”这个压缩包中,包含了MSDN官方提供的大量MFC(Microsoft Foundation Classes)的示例源代码。MFC是一个C++类库,它封装了Windows API,使得开发者可以使用面向对象的方式来编写Windows...
3. **调试器**: 强大的调试工具,可以设置断点、查看内存、单步执行代码,帮助开发者定位和修复问题。 4. **资源编辑器**: 可以方便地创建和修改应用程序的资源,如图标、菜单、对话框等。 5. **MFC支持**: 提供对...
首先声明,这份资源是amo_xoo的毛哥.NET 2.0便携参考(绿色MSDN) 2.0 彻底版,但他那个分了9个包,下载起来很不方便,所以就引用过来,方便大家下载。 微软MSDN在线库虽然全,但有时不方便上网,而MSDN Library安装...
1. **C++编程基础**:对于C++初学者来说,MSDN提供了详尽的C++语言参考,包括语法、类库、标准模板库(STL)、异常处理、内存管理等方面的内容。通过CHM文件,学习者可以查找和理解各种函数、类和关键字的用法。 2....
【标题】"VS2005_MSDN例子"揭示了这个压缩包文件包含的是关于Visual Studio 2005的MSDN示例代码。Visual Studio 2005是微软发布的一款强大的集成开发环境(IDE),用于创建各种类型的软件应用程序,包括Windows桌面...
MSDN,全称为Microsoft Developer Network,是微软公司提供的一套全面的开发资源库,它包含了Windows操作系统、.NET Framework、Office、SQL Server等微软产品和技术的详细文档、API参考、示例代码以及开发工具等...
[MSDN].msdn_oct_2001 适用于vc++6.0,最后一个版本。分成7个文件上传
例如,使用DebugView工具进行日志记录和调试,利用Visual C++的性能分析器进行代码性能剖析,以及如何有效地管理和释放内存以避免内存泄漏等问题。此外,对于多线程编程,MSDN6.0提供了关于线程同步、互斥量、临界区...
vc++6.0 MSDN Library chm
【MSDN 下载器 1.4】是一个专门设计用于帮助用户下载MSDN资源到Word文档的工具。这款软件的主要功能是将MSDN的技术文档、API参考和其他技术资料转换成易于阅读和保存的Word格式,方便离线查阅或打印。通过这个工具,...
【标题】MSDN的CSocket例子 - chatsrvr 在微软开发者网络(MSDN)上,有一个关于使用MFC(Microsoft Foundation Classes)中的`CSocket`类实现简单聊天服务器的例子,名为`chatsrvr`。这个例子展示了如何在Windows...
"Share MSDN"这个文件可能是一个共享的MSDN资源集合,可能包含了各种版本的操作系统、开发工具和其他软件的安装包。使用这类共享资源时,需谨慎对待版权问题,确保你有权使用这些资源,并且遵循社区分享的相关规则。...
Share MSDN 2.3.3作为一款工具,可能通过某种机制,如网络共享或镜像,帮助用户绕过通常需要订阅才能访问的限制,提供了方便快捷的下载途径。 此工具的更新至2.3.3版本,表明开发者社区对此有着持续的需求,并且...
内存管理函数,如`VirtualAlloc`分配虚拟内存,`VirtualFree`释放内存。 网络通信方面,Windows API提供了诸如`socket`、`bind`、`listen`、`accept`、`send`和`recv`等函数,支持TCP/IP协议栈的编程。安全性方面,...
MSDN Library是微软公司提供的一款极其重要的开发人员资源库,它包含了微软所有可开发产品的技术文档、编程指南、API参考、示例代码以及科技文献。这个综合性的平台为开发者提供了全面的技术支持,无论你是初学者...