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

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

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

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

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

待... ...

分享给朋友:

相关文章

介绍一个改编过的纸牌游戏WinSol。

介绍一个改编过的纸牌游戏WinSol。

这个游戏是VC++ 6.0 SP6 编写的。原作者是个日本人。但是他也是翻版。源代码是linux下的aisleriot纸牌游戏。经过拼装,加上windows SDK。改编而成。虽然这是VC++ 6.0...

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

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

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

关于ch341驱动,联动3D打印机USB串口通讯.

关于ch341驱动,联动3D打印机USB串口通讯.

手上有个3D打印机,搬家的原因,好久没用.天气热了,打印温度很适合,正好可以使用.又过了一年.发现linux 版本内核已经升级,和原来的系统不一样了. 按照3D打印机的说明,和寻找它的程序,原来的方法...

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

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

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

显微镜标定计算器,只发此处,留用备查。

显微镜标定计算器,只发此处,留用备查。

易语言写的标定计算器标定计算器.rar只限光学实验显微镜用。知道怎么用的可以选择下载。有问题请留言。显微镜标定计算器是来原于,电子目镜的标定在软件上显示很不正确。此程序只是精度高一点。这个程序是用22...

我谈易语言

我谈易语言

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