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