天天看點

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。

下一篇: SWAP

繼續閱讀