您的位置:首页 > 产品设计 > UI/UE

Torque的VS2005编译 (compiling Torque by VS2005)

2006-06-19 01:18 183 查看
Torque游戏引擎QQ群成员文章:(←迷离的猫→,QQ:613101)
Ntoe: maybe you know how to compile Torque by VS2003 or VC6, But what about VS2005,the following is the 'How'.

Torque:http://www.gamaura.com/Soft/2006/200603/12.html
VS2005:emule 上面 Team Suite edition

昨天下载到一个Torque,一把源代码。这个我喜欢 :) 赶紧下下来,用Visual Studio 2005来编译。首先,使用vs2005打开torque/vc7/Torque SDK.sln,根据提示升级解决方案,然后编译。以下就是碰到的错误。

1、char * 与const char*的转换问题
这个问题出现在dStrstr函数中:
char* dStrstr(const char *str1, const char *str2)
{
return strstr(str1,str2);
}
然而,strstr返回的是const char*。而编译器不允许char * 隐性转换到const char*。
所以,强制转换。

2、typedef问题
出错文件:winnt.h
出错行:typedef void *POINTER_64 PVOID64;
解决:这里是这样的,POINTER_64是一个宏,在64位编译下起作用,它包含在SDK目录下的BASETSD.H中,不幸的是,torque自己带了一个basetsd.h,里面没有定义POINTER_64,从而导致出错。改名,或删除该文件即可。

3、缺少resource.h文件
出错文件:resource.rc
提示:缺少resource.h文件
解决:在vc6目录下拷贝一个resource.h到vc7目录下即可。

4、操作符重载问题
出错文件:DTSMatrix.h中
出错行:template <int rows2, int cols2>
operator *= (const Matrix<rows2,cols2,type> &a) { (*this) = (*this) * a ; }
解决:
template <int rows2, int cols2>
Matrix<rows,cols2,type>
operator *= (const Matrix<rows2,cols2,type> &a) { (*this) = (*this) * a ; }

5、小问题
一个i定义位置不对,看官自己解决了:)

现在通过以上步骤,虽然warning一把,不过,能编译通过了 :)让我感觉奇怪的是,不知道这是不是由VC7升级到VC8里面出的问题。还望高手指点。

在排错过程中受到清澜,南斗的指点,非常感谢 :)

日期:2006.06.16
来自:withyourmark
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: