混合语言编程之VC++和C#管道通信
来源:互联网 发布:淘宝买家信息采集 编辑:程序博客网 时间:2024/05/28 05:18
使用混合语言编程,可发挥各自语言的优势,从而方便快速地完成任务。采用混合语言编程,就必然要解决进程间通信问题。管道似乎是一种不错的选择。今天参考了国外的一个开源工程,又查看了相关资料。
命名管道最大的特点便是建立一个简单的客户机/服务器程序设计体系。在这个体系结构中,在客户机与服务器之间,数据既可单向传递,亦可双向流动。
服务器:
1)使用API函数CreateNamedPipe,创建一个命名管道实例句柄。
2)使用API函数ConnectNamedPipe,在命名管道实例上监听客户机连接请求。
3)使用API函数ReadFile,从客户机接收数据;使用API函数WriteFile,将数据发给客户机。
4)使用API函数DisconnectNamedPipe,关闭命名管道连接。
5)使用API函数CloseHandle,关闭命名管道实例句柄。
客户端:
1)用API函数WaitNamedPipe,等候一个命名管道实例可供自己使用。
2)用API函数CreateFile,建立与命名管道的连接。
3)用API函数WriteFile和ReadFile,分别向服务器发送数据,或从中接收数据。
4)用API函数CloseHandle,关闭打开的命名管道会话。
本例程服务器使用VC++,客户端使用C#,服务器端VC++直接使用Windows API即可。
C#客户端使用管道有两种方式:1)使用.NET封装的NamedPipeClientStream。
2)在托管环境下加载非托管Win32 API。
第一种较简单,不再说明。管道的相关API函数在kernel32.dll库中,C#通过DllImport的方式申明Win32 API并调用相关函数,就可使用Windows API操作管道。
有兴趣请参考源代码,运行环境为vs2010。附件下载(免积分,希望大家分享资源时都不要积分):http://download.csdn.net/detail/dawsen/5760333
更新下载地址(2015.11.9):http://download.csdn.net/detail/taonull/9254567
- 混合语言编程之VC++和C#管道通信
- C# VC 管道通信
- VC和matleb混合编程之mx矩阵赋值(C语言)
- VB和VC混合编程
- VC++和Matlab混合编程
- matlab和vc混合编程之matcom方式
- VC++和MATLAB的混合编程之神经网络工具箱
- Windows系统编程之进程间通信-异步管道和命名管道
- C#进程同步之管道通信
- C#和C++混合编程
- FORTRAN和C#混合编程
- C#和C++混合编程
- C#和C++混合编程
- c#和MATLAB混合编程
- C#和C++混合编程
- C#和C++混合编程
- C#和java混合编程
- C#和C++混合编程
- Tomcat 7.0的配置
- NSProxy中methodSignatureForSelector、forwardInvocation两个消息方法
- 去看我房间空气我就放开了去我就放开了去
- mongodb java简单使用
- 苹果推送小记
- 混合语言编程之VC++和C#管道通信
- 关于MacBook电脑vim的配置和设置以及关于vim编辑器的一些快捷键的使用
- 混合语言编程—C#使用原生的Directx和OpenGL
- [题解][LeetCode][Single Number II]
- Symmetric Order
- Delphi Label 文字左右、垂直居中
- UVa10608 Friends
- HTML + CSS处理常见问题
- 安卓模拟器Genymotion安装使用教程详解