首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >SpriteBatch和SpriteFont (DirectXTK)引发错误(应为未限定的id)

SpriteBatch和SpriteFont (DirectXTK)引发错误(应为未限定的id)
EN

Stack Overflow用户
提问于 2020-08-13 02:21:28
回答 1查看 103关注 0票数 0

我使用的是链接到MSVCclang++

我编译了着色器(DirectXTK\Shaders),并在源代码中包含了SpriteBatchSpriteFont

如果我只包括头文件(.h),我会得到链接错误;如果我包括源文件(.cpp;有没有.h),我会得到这样的结果:

代码语言:javascript
复制
SpriteBatch.cpp:532:27: error: expected unqualified-id
    size_t newSize = std::max(InitialQueueSize, mSpriteQueueArraySize * 2);
                          ^
C:\Program Files (x86)\Windows Kits\10\Include\10.0.18362.0\shared\minwindef.h:193:29: note: expanded from macro 'max'
#define max(a,b)            (((a) > (b)) ? (a) : (b))

我试图在DirectXTK的GitHub问题页面、这个网站和网络上找到解决方案,但没有找到任何有用的东西。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-08-13 10:19:18

Windows头文件定义了一个'min‘和'max’宏,它与来自<algorithm>std::min/std::max的交互很差。

在我所有的模板和测试中,为了避免这个问题,我在使用Windows.h之前定义了NOMINMAX。这通常是一种更好的做法。如果在执行此操作时仍需要使用宏表单,则可以使用__min/_max

代码语言:javascript
复制
#define WIN32_LEAN_AND_MEAN
#define NOMINMAX
#define NODRAWTEXT
#define NOGDI
#define NOBITMAP
#define NOMCX
#define NOSERVICE
#define NOHELP

#include <Windows.h>

请参阅this other threadthis blog post

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63382610

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档