IPMSG飛鴿傳書——編譯源代碼的方法

 IP Messenger是一款局域網內部聊天、文件傳輸工具,具有很多優點,如數據通訊不需要建立服務器、直接在兩臺電腦間通信和數據傳輸,支持文件及文件目錄的傳輸,安全快捷以及小巧方便等優異特點,因此很多公司都採用它作爲部門、公司內部的IM即時通信工具。
  IP Messenger在程序結構方面採用了Windows SDK處理結構,通信方面採用了TCP/UDP通信方式,在文件傳輸處理方面採用文件映射技術,等等。通過分析IP Messenger的運行、工作原理,可以提高並加深對Windows處理流程的理解,提高SOCKET編程技術等,因此特對其源碼進行分析,以拋磚引玉,共同提高大家的編程技術。

1、IP Messenger源代碼的下載

  在寫這篇文章時,IP Messenger的最新版本是2.06,因此大家在下載時儘量選擇最新版本下載。IP Messenger源代碼的下載地址是http://www.ipmsg.org/,在網站的右上角,點擊English page,網站轉換到英文界面,網站有英文版以及其它語言的版本,當然還有中文版的鏈接(http://www.azhi.net/IPMsg/),建議大家儘量下載原版的英文版源代碼,以利於學習。

2、IP Messenger源代碼的目錄及文件

  IP Messenger源代碼的目錄結構及文件詳見列表1.1 IP Messenger源代碼主要的目錄及文件:

列表1.1 IP Messenger源代碼主要的目錄及文件

屬性 名稱 描述
目錄 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的功能分佈。在以下的詳細分析中,我們主要圍繞着這些源文件而展開。

3、IP Messenger源代碼的工程轉換

由於IP Messenger是使用以前版本的VC編寫的,因此在打開工程文件時,需要轉換該工程文件爲VC6版本的工程文件。
雙擊打開IPMSG.MDP文件,系統提示轉換IPMSG.MAK工程配置文件到VC6下的工程文件,如下圖所示。

 

單擊 “是”按鈕,確定將工程轉換成VC6的工程。系統提示將MAK工程文件轉換成DSP工程文件,如下圖所示。



單擊“確定”按鈕,系統根據MAK文件生成IPMSG.DSP文件,以及VC6下的IPMSG.DSW文件,另外系統還生成了IPMSG.NCB和IPMSG.OPT兩個文件。

4、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。

5、系統概述完成上述操作之後,就可以使用VC++ 6來編譯、調試IP Messenger。


當然,在以後的分析中,我們將分析ipmsg的安裝工程,那麼就應當選擇ipmsg-Win32 InstallerDbg配置作爲當前活動工程,編譯出Debug版的安裝工程。

發佈了7 篇原創文章 · 獲贊 2 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章