Torque的VS2005編譯 (compiling Torque by VS2005)

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章