当前位置:首页 > 我的程序 > 正文内容

VC++ 版本升级常见错误一句集。

Peirre5年前 (2021-07-21)我的程序812

很多程序源码从低VC版本到高VC版本就发现不能编译,现在说一下常见问题。

warning C4838: 从“unsigned int”转换到“INT”需要收缩转换。

这是因为 int 整形变量在不同的机器上长度不一样,而VC系统又会自动识别和补充类型定义,如果数据数值 不大,可以忽视。

1>c:\users\pierre\desktop\d3d11codeset\common\d3dutil.h(78): error C2065: “D3DX11_FILTER_LINEAR”: 未声明的标识符

未声明的标识符,这个问题,从低版本VC到高版本VC出现的问题,是VC的SDK扩展包的版本和VC头文件常量定义不一样,未声明是新版VCd头文件没定义这个值 。

1>c:\users\pierre\desktop\d3d11codeset\common\d3dutil.h(88): error C2143: 语法错误: 缺少“;”(在“std::wstring”的前面)

这个缺少;是结构或变量前有 类似于 __m128  _float 等变量限定义不存在,老版本VC如果不存在这值 将忽视编译通过。

版本不同,那一个结构可能多一个变量,少一个变量。而这些结构又在VC的默认文件头里。

有的SDK包的包含文件已经在windows SDK 里面 如naxmath.h 在 win sdk 目录um 中名为 directxmath.h 不过版本要配套。


如果是win10+DX11SDK 链接有错误 如 __vsnwprintf_s 错误时可以在依赖库中加入legacy_stdio_definitions.lib 这个库

如果是宏定义重复,宏的参数一样可以不管它,一定要比较宏定义的值。

待... ...

分享给朋友:

相关文章

关于 Cannot enable. Maybe the USB cable is bad? 这个问题。

关于 Cannot enable. Maybe the USB cable is bad? 这个问题。

经常摆弄电脑,那USB接口也是插进,拔出多少次。有一天发生了这个问题,什么问题呢?见图:只要是linux 新内核,都会出现这个问题,虚拟机USB功能,DOSBOX等USB功能不可识别。在网上查看了一些...

linux mint 20 下编译最新内核所添加的文件。

linux mint 20 下编译最新内核所添加的文件。

linux mint 20 下编译最新内核文件所需要的两个文件包。sudo apt-get install libncurses5-devsudo apt-get install libssl-dev...

linux 下的《仙剑奇侠传》

linux 下的《仙剑奇侠传》

以前的DOS游戏《仙剑奇侠传》是炙制人口的一个很容易上手的游戏。这个游戏流行了很多年。很多人在玩过多年以后,重温旧梦,回味游戏之中的情感。这个游戏再版了很多次了。现在linux 下也可以直接玩这个游戏...

我谈易语言

我谈易语言

易语言是一个集成打包的中文编程的语言。说实话,只要在电脑上的程序,易语言都可以用自己的方式实现。易语言可以开发linux 控制台下的图文程序和工具,十分好用。易语言的源码和例子量很大,精华源码例子已经...

刚刚上手的一个汇编程序nasm。

刚刚上手的一个汇编程序nasm。

今天使用了masm32软件,总有使不上劲的感觉。因为intel 指令集很多都没有,自己想测试一下,一边翻资料,一边使用。windows 编程好用,但是指令不全,心里总是感觉差一点。又不是编大程序,只是...

nasm 汇编命令2021年2月后增补。

nasm 汇编命令2021年2月后增补。

;=========================================================== ;nasm 增补新汇编命令集 ; ;引用方式  ;把icpup.inc...