【网通】点击此处下载源程序 【电信、网通】点击此处下载源程序
【网通】点击此处下载演示程序 【电信、网通】点击此处下载演示程序
【下载说明】
1、单击上面这个地址,打开下载页面。
2、点普通下载--等待30秒--点“下载”按钮--保存
C#发送和接收程序如上图
点击C#发送程序的Ping按钮之后的接收程序,如上图
C++版本的发送和接收程序
点击C++发送程序的Ping按钮之后,C++接收程序的界面如上图
介绍
演示程序演示了怎么样在C++和C#程序之间使用WM_COPYDATA消息来发送和接收数据。
为什么使用WM_COPYDATA消息?
通常WM_COPYDATA消息被用来发送一个有限长度的数据,在同一个机器的不同进程之间。在.NET中仍然可以通过这种方法来实现。这个演示是为了那些需要处理那些旧的系统环境中而做的。
演示程序有4个程序和1个DLL组成。两个程序是用C++(MS Version 5.0)写的,另外两个是用C#(.NET 2003)写的。C++的exe文件和C#的exe文件将会发送下面的结构体数据给C++和C#的接受程序。
struct sTagData {//this is the structure that will be sent (copied) by the WM_COPYDATA private: char szTag[ciMaxTag]; char szData[ciMaxData]; }
DLL文件使用VC 5.0写的,它重新包装了WM_COPYDATA消息。
另外,DLL文件提供了一个统一的方法:
- 保护应用程序,并阻止那些不能处理WM_COPYMESSAGE消息的第三方进程
- 允许接收指定发送者的有限长度的消息,通过handle或是发送者的id
- 使用加密方法来阻止黑客侦听消息
解压时,使用C盘的作为全路径。下面是解压路径:
- C:\WmCpyDta
- C:\WMCpyDat\Build - 所有工程的编译输出目录
- C:\WMCpyDat\From_C - 发送结构体的C++程序
- C:\WMCpyDat\TO_C - 接收结构体的C++程序
- C:\WMCpyDat\From_C_Sharp – 发送结构体的C#程序
- C:\WMCpyDat\\TO_C_Sharp - 接收结构体的C#程序
使用演示程序之前,打开build目录,然后运行4个exe文件。在窗口上点击“发送”按钮之后,消息就会出现在接受窗口上。两个发送程序都用到了DLL接口。两个接收程序都是在WindowProc函数里面来接收数据的。
支持的平台
这些程序仅仅在xp平台上做了测试.
其他须知
Philip McGahan是这个演示程序最初的创建者。除此之外,没有引用过其他源程序。任何部分或全部使用这个演示程序的人,都应该指出曾引用过Philip McGahan的程序。
最后,需要告诉阅读这篇文章的人,我也是一个C#新人。我试着使用C#来编译一个DLL。我不是很愿意去写一些不安全的块。这样会看起来很笨拙,当我对C#了解更多之后,我会重新考虑这个问题。
修订历史
- 10/23/2003 - 初次发布
- [原]ManageApps:C#读取Windows系统中的已经安装的程序并卸载软件
- [原]GetIcons:C#提取应用程序的图标资源
- [原]IniFile.cs:C#来操作ini配置文件
- [原]Baidu:C#利用百度来搜索网页、图片、视频等等
- [原]Hotkey.cs:为应用程序添加热键
- [原]QQHelper:QQ大家来找茬 辅助工具 外挂
- [译]在C#中使用J#运行时来压缩与解压缩
- [原]Cls_Ini.cls:VB写的操作ini配置文件的类
- [原]WMICodeCreator:C#产生WMI代码的工具
- [原]《The C Programming Language》电子书下载