Archive for the ‘未分类’ category

新作截图&试玩

14 12 月, 2013

点此链接试玩

high_battle

low_battle

在openSUSE上架设Mercurial(HG) Server

14 10 月, 2013

哎!实在是太麻烦了。

 

总之先Clone HG源代码
hg clone http://selenic.com/repo/hg-stable/
cd hg-stable
python setup.py build
sudo python setup.py install

1./etc/apache2/conf.d下建立hg.conf,内容如下:

ScriptAliasMatch        ^/hg(.*)        /srv/www/htdocs/hg/hgweb.cgi$1

<Directory /srv/www/htdocs/hg>
Options ExecCGI FollowSymLinks
AllowOverride None
</Directory>

如需认证,Directory内举例如下:
<Directory /srv/www/htdocs/hg>
Options ExecCGI FollowSymLinks
AuthType Basic
AuthName “Mercurial repositories”
AuthUserFile /srv/www/user_access/password.txt
Require valid-user
</Directory>

这里的password.txt是apache密码文件,用于保存用户名和密码
示例:htpasswd2 password.txt 用户名

2./srv/www/htdocs下建立hg目录,用户改为wwwrun:www
chown -R wwwrun:www /srv/www/htdocs/hg

3.复制hgweb.cgi到/srv/www/htdocs/hg目录下
修改config中内容为/srv/www/htdocs/hg/hgweb.conf”

4.建立hgweb.conf文件,内容如下:
[collections]
repos/ = repos/

重启apache2即可

渲染引擎将全面开始向OpenGL Core过渡

22 9 月, 2013

其实OpenGL Core版渲染引擎早在3年前就出现了雏形,并在2011年初上马了第一个项目。为什么要等到现在才公布呢?其中一个重要的原因就是OpenGL Core注定了在低端显卡上无法运行。现在这个条件在慢慢的消失了,于是时机到了。

关于 undefined reference to `vtable for 。。。。。。。。’的错误解决方法

19 3 月, 2013

最近碰上这个问题,无论GNU C/C++ 4.7.2还是LLVM Clang 3.2都会报,在网上查了许多资料,基本内容一样,但也基本都没有真正命中这个错误的起因。

这句英文的本意是无法产生虚拟函数映射表,那么原因肯定就是有虚拟的函数不存在。但为什么会不存在?那当然是没有写了。

所以,解决的办法就是检测你报错的类中,是否真正的实现了所有在本类中定义的派生函数。如果仅在.h中定义,而没有在.cpp中实现,就会报这个错误。

举个例子,以及代码中,B类就会报如上错误。

class Base
{
virtual void func();
};

class A:public Base
{
//没有定义,使用基类的
};

class B:public Base
{
void func(); //定义了,但没有实现
};

csv2table/CDBTableViewer for QT/Linux(openSUSE 12.2 X64)

5 12 月, 2012

虽然引擎支持了Linux/BSD,虽然仅是做SERVER。但还是会需要一些旧版引擎上才有的工具,比如CDB表格模块。之前一直是使用WINE在LINUX下转换和查看表格,但糟糕的是一旦出现问题无法修复,只能重启进WIN平台修正,非常之麻烦。昨日花了点时间先将CSV转CDB表格工具移植了过来,整个过程还算顺利,绝大部分代码都无需修改,剩下的小部分一般也就是改改名字和用法。

而后来想了想,开始了程序生涯中的第一个QT/LinuxGUI程序,这个比刚才还较顺利,没什么好说的。

另:CSV2Table转换器新增了对.ods/.fods/.xlsx文件格式的支持

《古月》发布Linux/BSD/Solaris早期开发测试版

11 9 月, 2012

Linux版:使用openSUSE 12.2系统、GCC 4.7.1编译 ,提供x86_64与i686版

BSD版:使用FreeBSD 9、LLVM Clang 3.0编译,仅提供amd64版

Solaris版:使用Solaris 11,GCC 4.5编译,仅提供i386版

注:此版本属早期开发测试版,仅供开发者试用评估,如在正式项目上使用造成任何问题,概不负责。

下载请点击这里 (使用金山快盘共享,在此特别感谢)

今天开始加入UNIX标签

14 7 月, 2012

细心的朋友会发现,我在网站最上方的标签中,新加了UNIX标签。

缘于我最近一段时间全面使用Linux系统办公,并且我还在Linux系统上安装了虚拟机,在虚拟机上安装了FreeBSD 9与Solaris 11。新一代的《古月》已经是完全在Linux下开发了,现可以正常编译并执行与Linux/FreeBSD环境下。可怜的Win环境已经完全不能编译了,尚在修正中。

也有可能程序员天生就喜欢命令行,看着命令行如代码一般。一开始还在win/linux之间反复切。后来终于可以痛下杀手将WIN分区完全格掉了。其实Linux桌面也还是挺好用的,相比Windows少的主要是娱乐方面。另外QQ/中国的网银也是一大麻烦。

封包的填充机制

8 7 月, 2012

1.充分自适应化

sock<<ID<<NAME<<SEX<<HP<<MP<<EXP;

优点:自动化强、简单、写着方便
缺点:有些时候依然无法自动化,而且会让程序员忽视数据的类型。客户端如与服务器端不一样,后果很严重。

2.严格指定格式法

sock.writeUint64(id);
sock.writeUTF8(NAME);
sock.writeBool(SEX);
sock.writeUint32(HP);
sock.writeUint32(MP);
sock.writeUint32(EXP);

优点:要求开发者严格指定数据类型,不容易出错
缺点:写着太累

sendfile函数在Linux/FreeBSD下的使用区别

3 7 月, 2012

#if HGL_OS == HGL_OS_Linux
#include<sys/sendfile.h>

inline int sendfile(int tfd,int sfd,size_t size)
{
return sendfile(tfd,sfd,NULL,size);
}
#endif//HGL_OS == HGL_OS_Linux

#if HGL_OS == HGL_OS_FreeBSD
#include<sys/uio.h>

inline int sendfile(int tfd,int sfd,size_t size)
{
return sendfile(tfd,sfd,0,size,NULL,NULL,0);
}
#endif//HGL_OS == HGL_OS_FreeBSD

Linux版本开发顺利,大部分基础函数调试通过

15 6 月, 2012

以下为使用LLVM Clang编译的某server示例程序启动截图

鄂ICP备09027626号