TT:win-client
来源:互联网 发布:西部证券交易软件 编辑:程序博客网 时间:2024/05/21 20:24
- 发表于 2年前
- 阅读 1094
- 收藏 1
- 点赞 0
- 评论 0
破译“粽”子代码,拿最高悬赏!>>>
为了直观的修改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
CppSQLite3是对SQLite的API进行了二次封装的类。
参考资料:http://blog.csdn.net/stan1989/article/details/8589293
http://www.codeproject.com/Articles/6343/CppSQLite-C-Wrapper-for-SQLite/
IniOperation:对ini文件进行读写操作的API的封装。
Md5:对md5加密算法的封装。
Multilingual:多语言支持包,当前只有一个从win-client\bin\teamtalk\chinese.ini文件里面取中文翻译的函数。
TTThread:多线程的封装(创建、销毁、挂起等)。
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)
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)
- 打赏
- 点赞
- 收藏
- TT:win-client
- tt
- tt
- tt
- tt
- tt
- tt
- tt
- TT
- TT
- tt
- tt
- tt
- TT
- tt
- TT
- tt
- TT
- GOLANG错误处理最佳方案
- C ++中的智能指针
- 详解OpenGL中的各种变换(投影变换,模型变换,视图变换)(一)——模型变换和视图变换
- Android Handler更新UI
- JSON对象操作小结
- TT:win-client
- 从 MVC 到前后端分离
- 探索源码方法之Vue
- ionic cordova platform add android
- bzoj 4372: 烁烁的游戏 (动态点分治+线段树+LCA)
- have a try
- c#:未将对象引用设置到对象的实例--可能出现的问题总结(转)
- 75.windbg-.printf(打印字符串)
- 操作系统(八)CPU调度 短剩余时间 吞吐量 轮循 实时调度 多处理器调度 (清华 向勇 陈渝版)