《3D游戏编程大师技巧》是在VC++环境下写的,现在在VS.net学习代码,最新碰到的就是重新编译不断报错的问题。
最然按照作者的编译器设置章节进行了设置,可还是无法一次编译成功。
在此作个笔记,记录下来备查吧
一、无法找到<iostream.h>文件。
原因:现在的头文件改为<iostream.hpp>了
解决:将<iostream.hpp>替换为<iostream.>即可
二、error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面)
原因:网上找的答案,见error C2146: 语法错误 : 缺少“;”(在标识符“PVOID64”的前面)[转]
总结为一句话:dx9SDK提供的头文件<basetsd.h>没有定义POINTER_64。
解决:我的解决办法就是把dx9SDK\include下的basetsd.h改名为basetsd_bk.h。目前很顺利
三、index未定义
原因:index定义在 for (int index=0; index<2; index++){*****}中,而出错的地方index都在该特环体之外。
就是说,现在的编译器对变量的作用域控制得更严格了
解决:把for(****)中的int index=0放到循环体之外,提升该变量的作用域范围。

这篇博客记录了在VS.NET环境下编译《3D游戏编程大师技巧》时遇到的错误及解决方案,包括头文件找不到、语法错误、变量作用域问题、链接错误和_lseek()函数报错。通过对源代码的分析和调整,解决了iostream.h文件、PVOID64定义、index作用域、lib文件链接以及OpenFile()与C函数open()的不兼容问题。
最低0.47元/天 解锁文章
1761

被折叠的 条评论
为什么被折叠?



