TT:win-client

来源:互联网 发布:西部证券交易软件 编辑:程序博客网 时间:2024/05/21 20:24
TeamTalk初学笔记2---关于win-client【第一篇】
收藏
  • 发表于 2年前
  • 阅读 1094
  • 收藏 1
  • 点赞 0
  • 评论 0

破译“粽”子代码,拿最高悬赏!>>>  

摘要: 接初学笔记第一篇,以下内容介绍了win-client的基础部分以及公用函数等。个人笔记,纯属记录学习的历程。欢迎大家拍砖!

       为了直观的修改TT客户端页面,我花了很多时间在网上寻找UIDesigner设计工具。最后实在是找不到了,就找了同事帮忙,他climb over the wall(这个词都成敏感词汇了?博客里居然不准用)之后终于帮我下载到了。

以下是Duilib的一些网址,很多都需要climb over the wall后才能访问。

官网: www.duilib.com

论坛: bbs.duilib.com

qq: 153787916(1),79145400(2)1507570(3

google code项目托管地址: http://code.google.com/p/duilib/

svn: http://duilib.googlecode.com/svn/trunk/

新浪微博: http://weibo.com/duilib

腾讯微博:http://t.qq.com/duilib

        客户端的具体页面布局xml文件在VS工具中的目录如图1所示:


1

这些xml源代码文件放在文件夹E:\tools\mogu.io\TeamTalk-master\win-client\bin\teamtalk\gui\下面。

修改举例:详细信息页面的用户名显示不全,我用UIDesigner工具打开了UserDetailInfoDialog.xml这个页面,并将width改为了80。如图2

2

接下来具体分析一下win-client的源码包:VS打开后,如图3,红色标注的我在第一篇博客里面讲到过的涉及采用到其他第三方库。这里就先不去深入学习了,后面涉及到那块就学哪块吧。

3

接下来重点讲一下其他部分:

Sln_define:解决方案的全局性配置(GlobalConfig.h)和全局变量(GlobalDefine.h)的定义。

Utility顾名思义:公用模块,如图4

4

  1. CppSQLite3是对SQLiteAPI进行了二次封装的类。

参考资料:http://blog.csdn.net/stan1989/article/details/8589293

http://www.codeproject.com/Articles/6343/CppSQLite-C-Wrapper-for-SQLite/

  1. IniOperation:对ini文件进行读写操作的API的封装。

  2. Md5:对md5加密算法的封装。

  3. Multilingual:多语言支持包,当前只有一个从win-client\bin\teamtalk\chinese.ini文件里面取中文翻译的函数。

  4. TTThread:多线程的封装(创建、销毁、挂起等)。

  5. utilCommonAPI:常规的自定义公用函数

    原作者快刀kuaidao@mogujie.com同志,一个函数的注释也没有,还好都可以顾名思义,我注释了如下,不对的地方请网友指正

    //二进制转十六进制再转字符串

    CString binToHexToCString(constunsignedchar *data,size_tlen)


    //获取md5字符串

    CString getMd5CString(constchar*pSrc,size_tlength)


    //获取当前进程已加载模块的文件的完整路径

    CString getAppPath()


    //获取当前进程已加载模块的文件的父路径

    CString getParentAppPath()


    //创建路径中的全部文件夹

    BOOL createAllDirectories(CString & csDir)

     

    //基于BKDR的哈希算法

    UInt32 hash_BKDR(constchar*str)

     

    //消息泵(抽取消息、翻译消息、分发消息)

    void messagePump()

     

    //将空间单位转换为人类可读的单位

    std::string getHumanReadableSizeString(doublesize)

     

    //文件是否存在

    BOOL isFileExist(INconstLPCTSTR csFileName)

     

    //注册dll控件

    BOOL registerDll(constCString&sFilePath)

     

    //线程等待函数(这里500ms作为判断时间)

    BOOL waitSingleObject(HANDLEhandle,Int32timeout)

  6. utilstrCodingAPI:自定义的字符串编码公用函数

    //32位整型转字符串

    CString int32ToCString(Int32n)

     

//字符串转32位整型(要求输入的参数字符串是符合int范围[-2147483648, 2147483647])

Int32    cstringToInt32(LPCTSTRbuff)

 

//无符号32位整型转字符串

std::string uint32ToString(UInt32n)

 

//字符串转32位整型(不做参数检查)

Int32 stringToInt32(const std::string&src)

 

//utf8转字符串

CString utf8ToCString(constchar*src)

 

//字符串转utf8

std::string cStringToUtf8(constCString&src)

 

//宽字符转窄字符

const std::string ws2s(const std::wstring&src)

 

//窄字符转宽字符

const std::wstring s2ws(const std::string&src)

 

//是否包含中文

BOOL isIncludeChinese(const std::string&str)

 

//获取第一个字母

std::string GetFirstLetter(constchar*strChs)

 

//汉字转首字母拼音

CString HZ2FirstPY(IN std::stringszHZ)

 

//汉字转拼音

char* ConvertChineseUnicodeToPyt(wchar_t*chrstr)

 

//整句翻译成拼音

 CString HZ2AllPY(INCString szHZ)

 

//拆分字符串

   Int32 splitString(__in std::wstringsrc,__in std::vector<std::wstring>_vecSpliter,

    __out std::vector<std::wstring> &_splitList)

 

标签: TeamTalkTT蘑菇街初学笔记win-client
  • 打赏
  • 点赞
  • 收藏
  • 分享
共有 人打赏支持
原创粉丝点击