gpt4 book ai didi

c++ - 尝试在 C++/CLI 项目中调用 GetAsyncKeyState() 时出错

转载 作者:可可西里 更新时间:2023-11-01 10:01:07 25 4
gpt4 key购买 nike

我正在从事一个相当复杂的项目,在该项目中,我从一个使用 C++/CLI 的项目中访问以普通旧式 C++ 编写的类。它是一个 Windows 窗体 GUI 项目,使用了许多与其(非 CLI)C++ 姊妹项目相同的功能。

在我试图调整以在两种环境中工作的我的一个类中,我正在使用此功能轮询按键:

inline bool IsKeyDown(unsigned char ch) const { 
return (GetAsyncKeyState(ch) & (1u << 15)) != 0;
}

我同时收到未解析的 token 和未解析的外部符号错误“外部“C”短 __stdcall GetAsyncKeyState(int)”(?GetAsyncKeyState@@$$J14YGFH@Z) 在函数“public:bool __clrcall Engine::InputManager::IsKeyDown(unsigned char)const”(?IsKeyDown) 中引用@InputManager@Engine@@$$FQBM_NE@Z)

显然,该问题与 GetAsyncKeyState() 有关,但我不确定对于 CLI 友好的实现需要有什么不同。谁能指导我如何解决这个问题?该功能在我的非 CLI 环境中正常工作(并且已经持续了几个月)。我对这个 CLI 的东西很陌生,所以任何帮助都会很棒,没有帮助会太具体。

如果有帮助,我正在使用 Visual Studio 2010 并使用 /clr 参数进行编译(不是 :pure:safe) .

最佳答案

MSDN library提供了任何特定功能需要包含哪些头文件和库的详细信息。

this case ,您需要 windows.h(您必须已经拥有)和 user32.lib(可能缺少)。所以添加

#pragma comment(lib, "user32.lib")

在你的代码的顶部,一切都应该很好。或者,您可以将 user32.lib 添加到项目属性页面的库列表中,记住为每个配置执行此操作,例如调试和发布。

关于c++ - 尝试在 C++/CLI 项目中调用 GetAsyncKeyState() 时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7781449/

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