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

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

Peirre4年前 (2021-07-21)我的程序694

很多程序源码从低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 这个库

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

待... ...

分享给朋友:

相关文章

linux 下的汉字输入法.

linux 下的汉字输入法.

各位老师,才子,同事们好!有很多初级玩linux的同学都会碰到一个难题,也就是在linux 下的汉字输入法.这个问题一直困绕了linux 使用者多年.我还好,每次都使用正常.现在说说心得笔记就可以了....

关于DOSBOX的简单说明。

关于DOSBOX的简单说明。

linux 下的共享软件DOSBOX 在有些版本的linux 中不能使用鼠标。网上说明要换声卡地址和中断,连接鼠标端口才可以使用。 曾经设置过,可以使用参数不记得。有个解决方法。这是软件问题。 先卸载...

关于编译器不愿意说的那些事。

关于编译器不愿意说的那些事。

计算机发展了好多年。当中也不泛有很多对程序的爱好。很多人不是专业水平,也不是在算法类中特别出众,就是喜欢而已。好像认为自己就只那个水平,或者为一些调试不通过发愁。可以说,实际上都不是你的错,是编译器的...

谈谈引导程序的想法。

谈谈引导程序的想法。

当个人电脑一出现就有了磁盘系统,不管是软盘,光盘,硬盘,计算机要应用操作系统就要引导,引导程序一段代码。这引导代码很小,在第一个磁盘的扇区上,平时没什么人注意它。这段代码损坏一个字节,都会造成计算机瘫...

我谈易语言

我谈易语言

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

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

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

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