gpt4 book ai didi

c++ - DirectXTK 在 "Mouse"中没有成员 "SetWindow(HWND hwnd)"

转载 作者:行者123 更新时间:2023-11-28 01:20:05 28 4
gpt4 key购买 nike

我尝试使用 DirectXTK 在我的游戏引擎中实现鼠标和键盘支持。这对于键盘来说非常简单,但是我在实现适当的鼠标支持方面遇到了问题。我在关注 THIS用于在我的引擎中实现鼠标。这篇来自 Microsoft wiki 的文章说,在我能够将鼠标模式从绝对模式更改为相对模式之前,我已经调用了 SetWindow。这听起来很简单,但是当我尝试这样做时:

auto mouse = std::make_unique<DirectX::Mouse>();
mouse->SetWindow(hwnd);
mouse->SetMode(DirectX::Mouse::Mode::MODE_RELATIVE);

我得到一个错误:

E0135 class "DirectX::Mouse" has no member "SetWindow"

Mouse 类中似乎没有这个方法。这很奇怪,因为如果我用设置窗口删除这一行它会编译,但由于 Mouse 类中的这个断言,我将在运行时失败:

assert(mWindow != nullptr);

所以需要设置窗口,但是没有这个功能怎么办呢?更糟糕的是,来自 wiki 的文章并不旧,它是从 2019 年 4 月 18 日开始的。有人遇到过这个问题吗?我该如何解决这个问题?

最佳答案

快速浏览 header file你会看到这个

#if (!defined(WINAPI_FAMILY) || (WINAPI_FAMILY == WINAPI_FAMILY_DESKTOP_APP)) && defined(WM_USER)
void __cdecl SetWindow(HWND window);
static void __cdecl ProcessMessage(UINT message, WPARAM wParam, LPARAM lParam);
#endif

所以您似乎没有 WINAPI_FAMILY和/或 WM_USER以适当的方式定义,以便在头文件中启用该方法的声明。

我相信WM_USER将由 #include <windows.h> 定义所以也许您需要做的就是在 #include <mouse.h> 之前包含的地方

关于c++ - DirectXTK 在 "Mouse"中没有成员 "SetWindow(HWND hwnd)",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56805224/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com