`
zyy200411
  • 浏览: 46402 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

【转】VC++6.0共享内存

阅读更多

VC++6.0共享内存技术总结

程序1 -- 建立共享区,写数据:

int main(int argc, char* argv[])
{
 HANDLE lhShareMemory;
 char* lpBuffer = NULL;
 
 lhShareMemory = CreateFileMapping(HANDLE(0xFFFFFFFF), NULL, PAGE_READWRITE,
  0, 10, "mySharedMemory");
 
 if (NULL == lhShareMemory)
 {
  if (ERROR_ALREADY_EXISTS == GetLastError())
  {
   cout << "Already exists!";
  }
  else
  {
   cout << "Create Sheared Memory unsuccessfully!";
  }
  return 0;
 }
 
 lpBuffer = (char*)MapViewOfFile(lhShareMemory, FILE_MAP_WRITE, 0, 0, 10);
 if (NULL == lpBuffer)
 {
  cout << "Get Share memory unsuccessfully!";
  return 0;
 }
 
 strcpy(lpBuffer, "hello");
 cout << "进程通信:采用共享内存" << endl;
 cout << "写进程" << endl;
 cout << "写入数据:"<< endl<<lpBuffer << endl;
 Sleep(100000);
 UnmapViewOfFile(lpBuffer);
 return 0;
}

  

程序2 -- 使用共享区,读数据:

int main(int argc, char* argv[])
{
 HANDLE lhShareMemory;
 char* lpcBuffer;
 
 lhShareMemory = OpenFileMapping(FILE_MAP_READ, false, "mySharedMemory");
 if (NULL == lhShareMemory)
 {
  cout << "Open share memory unsuccessfully!" << endl;
  DWORD ldwError = GetLastError();
  cout << ldwError;
  return 0;
 }
 
 lpcBuffer = (char*)MapViewOfFile(lhShareMemory, FILE_MAP_READ, 0, 0, 100);
 if (NULL == lpcBuffer)
 {
  cout << "Open share memory unsuccessfully!";
  return 0;
 }
 cout << "进程通信:采用共享内存" << endl;
 cout << "读进程" << endl;
 cout << "读入数据:" << endl;
 for (int i = 0; i < 100; ++i)
 {
  cout << *(lpcBuffer + i);
 }
 UnmapViewOfFile(lpcBuffer);
 return 0;
}

 

详情请参考附件里完整的工程。

 

分享到:
评论

相关推荐

    在VC++ 6.0下利用共享内存、消息实现内部进程通讯C++源代码程序小实例

    总之,这个小实例为我们提供了一个实用的教程,通过具体的代码展示了如何在VC++ 6.0中利用共享内存和消息传递来实现内部进程通信。理解并掌握这些技术对于编写多进程应用至关重要,它们不仅能够提高程序的效率,还能...

    vc++ 6.0 DLL 示例

    在IT领域,动态链接库(DLL)是一种共享代码的机制,允许多个应用程序同时使用同一份代码,节省内存并便于代码的更新与维护。VC++ 6.0是Microsoft Visual C++的一个经典版本,它提供了创建DLL项目的功能。下面将详细...

    VC++6.0高级编程范例

    2. **内存管理**:在VC++6.0中,内存管理是程序员的责任。学习如何有效地分配和释放内存,避免内存泄漏,是高级编程的重要环节。范例会展示动态内存分配、智能指针的使用,以及如何防止内存错误。 3. **异常处理**...

    vc++6.0 完整 绿色版

    **VC++6.0 完整绿色版:经典与现代编程的交汇点** Microsoft Visual C++ 6.0(简称VC++6.0)是一款深受程序员喜爱的老牌集成开发环境(IDE),它在20世纪末至21世纪初是Windows平台上C++编程的标准工具之一。尽管...

    VC++ 6.0程序设计从入门到精通

    3. **动态链接库(DLL)**:VC++ 6.0也支持创建DLL项目,它们可以被多个应用程序共享,提高代码重用性。 **四、编程基础** 1. **C++语法**:包括变量、数据类型、运算符、流程控制语句、函数、类与对象、继承、多态...

    VC++ 6.0 运行库参考手册

    5. **内存管理**:VC++ 6.0运行库包含了内存分配和释放的函数,如malloc、calloc、realloc和free。此外,还有新的内存管理函数如_new_handler,用于处理内存不足的情况。 6. **I/O流库**:C++的iostream库提供了...

    VC++ 6.0 线程实现实时动态曲线绘制

    在VC++ 6.0开发环境中,实时动态曲线绘制是一个常见的需求,特别是在数据分析、系统监控或者科学计算等应用中。本项目通过线程技术实现这一功能,使得在用户界面更新和数据处理之间达到良好的平衡,提供了高效且流畅...

    vc++6.0入门教程PDF

    结构体允许我们组合不同类型的数据,而联合则提供了一种内存共享的方式。这一章会探讨如何定义、声明和使用这两种复合类型。 第八章:对象和类 C++是面向对象的编程语言,类和对象是其核心概念。本章会介绍类的定义...

    《VC++ 6.0实例教程》源代码

    4. **动态链接库(DLL)**:在VC++ 6.0中,你可以创建和使用DLL来共享代码和资源。源代码可能包含创建和调用DLL的示例,这对于理解和优化项目结构很有帮助。 5. **异常处理**:了解如何使用C++的try-catch语句进行...

    操作系统进程模拟系统(VC++6.0)

    5. **同步与通信**:进程之间有时需要协调工作,这涉及同步原语(如信号量、互斥锁)和通信机制(如管道、消息队列、共享内存)。模拟系统可能会包含这些机制,以演示如何在多进程环境下避免数据竞争和死锁问题。 6...

    vc++6.0绿色版

    对于“vc++6.0绿色版”,它可能是一个无需正式安装的版本,只需解压文件到指定目录并执行启动脚本(如sin.bat)即可使用。 2. **启动快捷方式**:`ShortCut.exe` 可能是创建桌面快捷方式的程序,方便用户快速启动...

    VC++6.0技术内幕源程序

    6. **动态链接库(DLL)**:了解如何创建和使用DLL,这是在VC++6.0中实现代码共享和模块化的重要手段。 7. **工程与项目管理**:学习如何创建和管理项目,配置编译选项,以及如何组织源文件和头文件,以便于团队...

    VC++ 6.0(win7&win8兼容)

    9. **动态链接库(DLL)**:VC++ 6.0支持创建和使用DLL,它们是可独立加载和卸载的代码模块,可以减少内存占用和共享代码。 10. **多线程编程**:VC++ 6.0提供了多线程编程的支持,允许开发者创建并行执行的任务。 ...

    VC++6.0 运行库参考手册

    VC++6.0集成了调试器,允许开发者单步执行代码、设置断点、查看变量值、跟踪内存分配等,对于查找和修复程序错误至关重要。 总的来说,VC++6.0运行库参考手册是开发者理解和使用VC++6.0的关键资源,它涵盖了从基本...

    MFC vc++6.0文件操作

    在Microsoft Foundation Classes (MFC) 中,VC++ 6.0 提供了强大的文件操作功能,使得开发者可以方便地进行各种文件操作,如打开、关闭、读取、写入、创建以及删除文件。MFC 是 Microsoft 为 Windows 平台上的 C++ ...

    vc6.0source-file.rar_VC++6.0程序样例

    DLL是一种共享代码的方式,可以减少内存占用并促进代码重用。在VC++ 6.0中,你可以学习如何创建和调用DLL,以及如何导出和导入函数。 10. **调试技巧** 学习如何使用VC++ 6.0的调试器进行断点设置、单步执行、...

    基于vc++6.0开发的步进电机开发程序

    在本文中,我们将深入探讨如何使用Visual C++ 6.0(简称VC++6.0)这个经典且功能强大的编程环境来开发步进电机控制程序。步进电机是一种精密的执行器,常用于精确的位置控制,如自动化设备、机器人、打印机和扫描仪...

    VC++6.0介绍及使用教程(3/3)

    **VC++6.0简介** Microsoft Visual C++ 6.0(简称VC++6.0)是一款由微软公司推出的经典集成开发环境(IDE),主要用于编写使用C++编程语言的Windows应用程序。这款IDE在1998年发布,因其强大的功能和易用性,至今仍...

    VC++6.0多线程

    同一进程内的线程共享进程的内存空间和其他资源。 2. **创建线程** 在VC++6.0中,可以通过以下两种方式创建线程: - **Win32 API函数CreateThread**:使用CreateThread函数,提供线程入口函数地址和必要的参数,...

Global site tag (gtag.js) - Google Analytics