gpt4 book ai didi

c++ - code::blocks 出现奇怪的编译器错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:41:41 24 4
gpt4 key购买 nike

我昨天从 Visual Studio 切换到 Code::Blocks,只是收到了一些奇怪的编译器错误消息。

我包含了 windows.h,我可以很好地使用所有 API 调用,例如创建窗口类和创建窗口/按钮等等。但是,当我尝试使用 SendInput() 发送一些按键时,我收到了关于这两个声明的错误消息:

INPUT ip;
KEYBDINPUT kbi;

编译器错误:

C:\code_blocks\test-app\main.cpp|21|error: 'INPUT' was not declared in this scope|
C:\code_blocks\test-app\main.cpp|22|error: 'KEYBDINPUT' was not declared in this scope|

我什至可以右键单击 KEYBDINPUTINPUT 结构并单击“查找声明”,它会在“winuser.h”(位于内部)中找到它,但它仍然给我这些未声明的错误消息。

此代码在 VS 中运行良好,仅包含 windows.h。我正在使用 GNU GCC 编译器。

最佳答案

我认为您需要预处理器指令(Visual Studio 可能已经添加了它们):

您将 _WIN32_WINNT 定义为什么?

也许你可以添加:

#ifndef _WIN32_WINNT
#define _WIN32_WINNT 0x0400
#endif

或者您可以将其作为编译序列的一部分添加到预处理器指令中。任何好的编译器都会有它。

如果还是不行,去掉include guards,直接定义。也许它在别处得到定义。

有些编译器会在预处理器指令设置中有这个:WIN32,_DEBUG,_CONSOLE,_MBCS,_WIN32_WINNT=0x0400

关于c++ - code::blocks 出现奇怪的编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3268252/

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