IPMSG飞鸽传书——编译源代码的方法

2021年09月15日 阅读数:1
这篇文章主要向大家介绍IPMSG飞鸽传书——编译源代码的方法,主要内容包括基础应用、实用技巧、原理机制等方面,希望对大家有所帮助。
IP Messenger是一款局域网内部聊天、文件传输工具,具备不少优势,如数据通信不须要创建服务器、直接在两台电脑间通讯和数据传输,支持文件及文件目录的传输,安全快捷以及小巧方便等优异特色,所以不少公司都采用它做为部门、公司内部的IM即时通讯工具。
  IP Messenger在程序结构方面采用了Windows SDK处理结构,通讯方面采用了TCP/UDP通讯方式,在文件传输处理方面采用文件映射技术,等等。经过分析IP Messenger的运行、工做原理,能够提升并加深对Windows处理流程的理解,提升SOCKET编程技术等,所以特对其源码进行分析,以抛砖引 玉,共同提升你们的编程技术。

一、IP Messenger源代码的下载算法

  在写这篇文章时,IP Messenger的最新版本是2.06,所以你们在下载时尽可能选择最新版本下载。IP Messenger源代码的下载地址是http://www.ipmsg.org/,在网站的右上角,点击English page,网站转换到英文界面,网站有英文版以及其它语言的版本,固然还有中文版的连接(http://www.azhi.net/IPMsg/),建议 你们尽可能下载原版的英文版源代码,以利于学习。编程

二、IP Messenger源代码的目录及文件安全

  IP Messenger源代码的目录结构及文件详见列表1.1 IP Messenger源代码主要的目录及文件:服务器

列表1.1 IP Messenger源代码主要的目录及文件ide

属性 名称 描述
目录 SRC 工程文件源代码和INSTALL目录

文件工具

IPMSG.MAK VC4及之前版本使用的工程文件,用来指定如何创建一个工程,VC6把MAK文件转换成DSP文件来处理
IPMSG.MDP 后缀MDP(Microsoft DevStudio Project的简称)是老版本的项目文件,至关于DSP文件
PROT-ENG.TXT 英文版的协议描述
PROTOCOL.TXT 日文版的协议描述
README.TXT 英文版的README
README-J.TXT 日文版的README

IP Messenger的SRC目录内容描述在列表1.2,SRC目录及主要文件。学习

属性 名称 描述
目录 INSTALL 安装程序源代码目录
文件 BLOWFISH.CPP 加密算法源文件
BLOWFISH.H 加密算法头文件
BLOWFISH.H2 加密算法随机数头文件
CFG.CPP 系统配置源文件
IPMSG.CPP IPMSG的APP源文件
IPMSG.H IPMSG头文件
LOGDLG.CPP 日志DLG源文件
LOGMNG.CPP 日志处理源文件
MAINWIN.CPP IP Messenger主窗口源文件
MISCDLG.CPP 消息DLG,关于DLG,以及控件子类化等源文件
MSGMNG.CPP Socket管理源文件
PLUGIN.CPP Dll plugin加载源文件
RECVDLG.CPP 接收消息处理源文件
SENDDLG.CPP 发送消息处理源文件
SETUPDLG.CPP IP Messenger属性配置源文件
SHARE.CPP 文件传输接收管理源文件
TAPP.CPP 应用程序类源文件
TDLG.CPP DLG类源文件
TLIST.CPP 链表类源文件
TREGIST.CPP 注册表操做类源文件
TWIN.CPP 窗口类源文件
MSGSTR.H 字符串常量头文件
TLIB.H 类、结构等头文件

  另外在SRC目录下,还有一个INSTALL目录,该目录中的文件是IP Messenger安装程序的源代码,其主要文件描述在列表1.3 INSTALL目录主要文件。

列表1.3 INSTALL目录主要文件网站

属性 名称 描述
文件 INSTALL.CPP 安装程序源文件
INSTALL.H 安装程序头文件

  以上是IP Messenger的主要目录及其主要源文件的描述,经过列表咱们能够清晰看出IP Messenger的功能分布。在如下的详细分析中,咱们主要围绕着这些源文件而展开。ui

三、IP Messenger源代码的工程转换加密

因为IP Messenger是使用之前版本的VC编写的,所以在打开工程文件时,须要转换该工程文件为VC6版本的工程文件。
双击打开IPMSG.MDP文件,系统提示转换IPMSG.MAK工程配置文件到VC6下的工程文件,以下图所示。

 

单击 “是”按钮,肯定将工程转换成VC6的工程。系统提示将MAK工程文件转换成DSP工程文件,以下图所示。



单击“肯定”按钮,系统根据MAK文件生成IPMSG.DSP文件,以及VC6下的IPMSG.DSW文件,另外系统还生成了IPMSG.NCB和IPMSG.OPT两个文件。

四、IP Messenger的工程配置

  IP Messenger的配置和目前VC6的工程配置有些不一样,其安装工程文件和工程文件在混合在一块儿,不像VC6工程文件,不一样的工程在不一样的项目下,分别进行配置。
单击“Build”菜单,选择“Set Active Configuration…”,弹出“Set Active Project Configuration”对话框,以下图所示。

 

  IP Messenger的工程配置有6个,分别是Release的英文、日文以及Debug的ipmsg工程和安装工程。经过选择不一样的配置,能够编译出不一样 的工程。根据须要,咱们选择ipmsg-Win32 Debug配置做为当前活动工程,此编译配置能够编译出Debug版的ipmsg。

单击“Project”菜单,选择“Settings…”,弹出“Project Settings”对话框,选择“C/C++”标签栏,以下图所示。

 

  能够看到,在“Preprocessor definition:”中,工程使用了“JAPANESE”宏定义,也就是说,编译后的Debug版的ipmsg是日文版。固然,能够根据须要,修改此宏为“ENGLISH”,就能够编译出Debug版的英文ipmsg。

五、系统概述完成上述操做以后,就可使用VC++ 6来编译、调试IP Messenger。


固然,在之后的分析中,咱们将分析ipmsg的安装工程,那么就应当选择ipmsg-Win32 InstallerDbg配置做为当前活动工程,编译出Debug版的安装工程。