【tvision学习笔记一】环境搭建及字符编码问题
TVison Windows开发环境搭建,工程建立及解决字符编码问题
Tvision是一个开源的TUI框架,据说设计很不错,最近开始学习。
现代的GUI框架是从TUI发展而来的,所以如果熟悉了这个,再学GUI框架会相当快,比如MFC,cocos2d-x啊等等,都是差不多的思想。
(只是据说,我也才开始学:)
首先TUI是什么呢?
下面说下环境搭建步骤:
1. Download
从网上下载其源码,我用的是2.2.1-1的版本,下载后得到rhtvision_2.2.1-1.tar.gz文件,要用7-zip解压,不能用winrar。
2. 转码
由于tvision的源码内有大量的特殊字符,VS不能正常显示,比如:" À ³Úà ÙÄÁ¿´ÂÅ È ºÉÇ ¼ÍÏ»¶Ñ ",这个在VS里会变成乱码,有些乱码乱的会把双引号给乱没,如果这样编译就过不了了,事实上不转编码的话会有大量的这种错误,所以要把所有源代码文件的字符编码从ANSI转为UTF-8的格式,这里推荐一个很好用的批量转文件编码的工具 :Replace Pioneer,转的时候从 ASCII -> UTF-8 DOM就可以了。
3. 建立VS工程。
我们的目标是把tvision的整个框架代码编译成一个静态库(*.lib),附带的示例代码./examples/再建立控制台工程
3.1 建立 tvision.lib
tvision本身没有提供VS的工程,所以要我们手动建,这个比较麻烦,是体力活。没办法,谁叫咱英语不好,看不懂人家的Readme文件,也不会用make文件直接编译,所以只好建工程了。其实建工程以后学习代码也方便点,毕竟VS+VA的组合简直就是神器啊,什么IDE都得跪舔。
扯太远了,言归正转,首先用VS建一个空的Lib工程,然后开始加我们的tvision文件,基本上要把它的文件加过来个遍,除了那些平台相关的。下面我列个列表出来给大家参考一下。以下目录中的文件都要加进去, ./指的是 ../tvision/,也就是你解压后的tvision目录
./
class/
class/alcon/
class/win32/
class/wingr/
class/winnt/
compat/
names/
stream/
winnt/
winnt/include/
winnt/include/msvc/
winnt/include/tv/
好了,加上这里面的文件就可以了,当然为了方便学习,头文件也最好加到工程里
./include/
./include/cl/
./include/tv/
./include/tv/alcon/
./include/tv/skeleton/
./include/tv/win32/
./include/tv/wingr/
./include/tv/winnt/
这下文件全都加进来了,编译一下吧!如果有什么问题根据提示处理一下就行,一般静态库应该可以编出来了。
3.2 建立demo
在解决方案上右击,添加新工程,建个空的控制台工程,然后随便在examples目录下找一个,把里面的文件托进来,再设置一下工程属性,
比如头文件目录,附加库目录,输入库等等,这些不用我多说了吧。
建好Demo工程后编译终于完成了!WOW很激动吧,很想按跑起来看到神奇的TUI界面,但是悲剧发生了!
竟然是乱码,如下图所示(我用的中文Windows系统):
这个问题在网上找了很久,也试了很多办法,后来当我找的山无棱,天地合,快与君决的时候,老大看不下去了,曰:”来来来,我帮你搞,看你弄了这么久。”
然后他过来,大手一挥,把cmd.exe的默认代码页改成了437 美国,重新运行,竟然好了!!!!
我当场泪流满面,又是喜,又是悲,喜的是找了这么久没解决的问题解决了,悲的是………… 自己怎么这么菜 T_T
好吧,不矫情了,说下怎么设置,控制台窗口左上角左击一下选“默认值”,在倒2位置那,然后在选项那找到“默认代码页”,改为美国即可,如下图示:
改完之后的运行效果:
是不是很漂亮呢?
嗯,是的!
最后再看一下我的工程树吧:
OK , 写完收工,周五喽~ 周末到了,又是找游戏玩的节奏。
如果有朋友想要建好的工程的话可以给我发邮件:gneveek@qq.com