GetAsyncKeyState返回致命链接错误

GetAsyncKeyState returning fatal link error

本文关键字:链接 错误 返回 GetAsyncKeyState      更新时间:2023-10-16

我试图在c++中制作一个基本的控制台游戏,当我尝试在以下代码中使用GetAsyncKeyState时:

   if(GetAsyncKeyState(VK_UP) != 0){
        int y2 = (y - 1);
        switch(Map[y2][x]){
            case ' ':{
                Map[y][x] = ' ';
                y -= 1;
                Map[y2][x] = 'O';
            }
        }
    }

…但是当我尝试编译它时,我一直得到以下错误:

    error LNK2019: unresolved external symbol __imp__GetAsyncKeyState@4 referenced in function "void __cdecl Draw(void)" (?Draw@@YAXXZ)
    fatal error LNK1120: 1 unresolved externals

我不确定我是否需要包括iostreamwindows.h以外的任何库

错误来自链接器。您必须与GetAsyncKeyState符号定义的User32.lib链接(实际上它是User32.dll的导入库)。你可以这样写

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

,或者将User32.lib添加到链接器命令行。

请注意,如果您使用Microsoft Visual Studio并创建一个非空的Win32项目,那么所需的默认Windows系统库已经链接到。但是,由于您没有说明如何准确地编译和链接,因此我就不再详细讨论这个主题了。