自学内容网 自学内容网

win10系统使用Visual Studio 2019编译SDL2为32位库时出现error C2118: 负下标winnt.h的解决方法

提示:

1. VS2019的配置选项设为x64不会有该问题,设为win32才会有。

2. 只有较早版本的SDL2选配置选项为win32会有这个问题,比如SDL 2.0.5版本。

3. 解决方案中有3个项目,SDL2这个项目才会有这个文章标题说的问题。

解决方法一:

参考解决方法:https://stackoverflow.com/questions/70322372/sdl2-build-error-c2118-negative-subscript

意思就是找到SDL 2.0.5源码目录中include文件夹里的SDL_syswm.h并打开,

按如下修改:

把第36行的#include "begin_code.h"复制,然后注释掉,再粘贴到#include <windows.h>的后面

即#endif的后面,也就是第60行粘上#include "begin_code.h",我这么说你应该明白吧。不明白再看下图吧。啰嗦是啰嗦了点,但这很有用啊!总比别人打哑谜来得好吧。

解决方法二:

1. 打开VS2019

2. 找到上面菜单栏的:工具(T)

3. 选择:获取工具和功能

4. 找到:使用C++的桌面开发 √

6. 把右边的安装详细信息中的:Windows 10 SDK (10.0.17763.0) √选上

7. 关闭你打开的VS2019(你不关闭的话等会执行第8之后安装的时候要你关闭的呀)

8. 点击右下角的修改(M)

9. 等它安装完,然后再打开你的SDL2项目。

10.右键修改SDL2的属性-->配置属性-->常规-->Windows SDK版本-->下拉选择:10.0.17763.0-->确定-->重新生成。

其他PS:

修改SDL2项目属性的C/C++-->代码生成-->结构成员对齐:8字节

我反正修改了,毛得用噻!

我推荐你选解决方法一处理哦。

各位看官,如果你觉得写得还行,不妨点个赞呗!我谢谢你。


原文地址:https://blog.csdn.net/isS_MK_GmbH/article/details/143501561

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!