【发布时间】:2023-04-11 06:19:01
【问题描述】:
我正在从事一个相当复杂的项目,在该项目中,我正在使用 C++/CLI 从项目中访问用普通 C++ 编写的类。这是一个 Windows 窗体 GUI 项目,它使用许多与其(非 CLI)C++ 姊妹项目相同的功能。
在我尝试调整以在两种环境中工作的其中一个课程中,我正在使用此功能轮询按键:
inline bool IsKeyDown(unsigned char ch) const {
return (GetAsyncKeyState(ch) & (1u << 15)) != 0;
}
我同时遇到了 Unresolved Token 和 Unresolved External Symbol 错误
"extern "C" short __stdcall GetAsyncKeyState(int)" (?GetAsyncKeyState@@$$J14YGFH@Z) referenced in function "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)进行编译。
【问题讨论】:
标签: c++ windows visual-studio-2010 command-line-interface