用vc++2008编VC++6.0教程的程序应该没问题吧!

来源:百度知道 编辑:UC知道 时间:2024/05/30 08:07:46

对“猪头垂散发光芒”的见解有不同看法哦!
我和大多数人的经验一样,一般高版本的总是能较好的支持低版本的VC。没见过不支持的程序代码。
在VC6.0编译通过,但在08里没通过,不一定是兼容的问题。一般是2个:
1)宏定义不一致问题,譬如:6.0定义了UNICODE和_UNICODE这两个宏,以便能支持Unicode字符集。而在08里没有定义这两个宏,那08肯定要报错了。
2)代码涉及/依赖硬件。譬如:6.0是在32位机器上的,而08是在64位机器上的,使用SetWindowLong就会出问题。所以很多情况下,需要使用SetWindowLongPtr而不是SetWindowLong。类似的例子还有InterlockedExchangePointer等好多函数。
一般情况下,请先检查宏定义是否一致。
P.S.于此对应,重复定义宏也会出问题。至于“niinor”说的库不一样造成的,更加不可能了,怎么说2008比6.0的库要新呀,绝对兼容6.0里的东西!有人说6.0里的语法和08里的语法有些出入,那是可能的。但既然是出版物了,出版物一般使用的都是标准语法,不存在使用特殊语法(所谓特殊语法,就是指一些不规范的语法啦,对于不规范的语法不同的编译器处理很不一样,不规范语法的出现不是作者刻意为之,而是作者语法没学好。出版物里有吗?我没见过)的情况的。

很有问题哦!~

有很多程序用vc++写好了~可调式~

可到汉化版的2008vc++上就提示出错~

很莫名其妙哦!~

要注意!~最好还是VC++6.0~.....要是vista....那没办法了~

一般来说没问题;你注意一下2008默认是Unicode的~~~
你参考一下我以前的发帖

除了Unicode的问题(这个很好解决的,在项目的属性里把使用Unicode字符集改为多字节字符集就可以了),最主要的是VS2005(VS2008)相对于VC6.0而言对于C++的规范要求的更严格了。例如:
在VC6.0里可以这样写
for(int i=0;i<10;i++)
{
...
}