gpt4 book ai didi

c++ - 构建时 wingdi.h 出现 100 多个错误

转载 作者:太空狗 更新时间:2023-10-29 21:37:24 27 4
gpt4 key购买 nike

所以我正在制作一个游戏,一个 ASCII 地牢探索者,我有一个计划来获取窗口大小并缩放显示地牢旁边的库存。我在谷歌上找到了一个返回窗口大小的函数,这样我就可以在旁边打印 inv ...被注释掉的部分是我找到的代码,所以我试着把它放在我的 main.cpp 中只是为了尝试一下。我计划使用我发现的其他函数来获取窗口的最大大小并设置大小。当我运行游戏时,我粘贴到我的代码中的这段代码给我带来了很多错误,其中大约 180 个错误来自名为 wingdi.h 的头文件。我在谷歌上搜索了一下,发现人们在我尝试过的项目属性中更改了一些定义,它给了我大约 130 个来自 .有人说其中一个变量已经在 windows.h 中声明,提出该问题的人应该将其更改为其他变量,因此我将 csbi 更改为 my_csbi,但均无效。有些人还说这是代码的问题,所以我决定暂时离开它,回到我的旧代码并暂时做其他事情(我感到很沮丧,哈哈)。我把它全部注释掉了,希望以后再回来。当我试图在所有代码都消失的情况下运行我的游戏时,它给了我同样的错误。我必须重新安装 Visual Studio 2015 吗?从头开始我的代码还是更改一些定义?

    #include <iostream>
#include <conio.h>
//#include <Windows.h>
#include "GameSystem.h"

using namespace std;

int main()
{
//int x = 0;
//int y = 0;

//CONSOLE_SCREEN_BUFFER_INFO my_csbi;
//GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &my_csbi);

//x = my_csbi.srWindow.Right -my_csbi.srWindow.Left + 1;
//y = my_csbi.srWindow.Bottom -my_csbi.srWindow.Top + 1;

//printf("columns: %d\n", x);
//printf("rows: %d\n", y);

GameSystem gameSystem("level1.txt");

gameSystem.playGame();

printf("Enter any key to exit...\n");
int tmp;
cin >> tmp;
return 0;
}

我是编程新手,所以如果我的问题愚蠢或“简单”并且以某种形式冒犯了您,我深表歉意。 :)

谢谢,Bulky。

编辑:其他人得到的所有“解决方案”对我都不起作用,我决定问这个问题,因为在我注释掉所有代码后,我的旧代码甚至无法运行(以前是完美的)。

最佳答案

  1. 您永远不会包含 <WinGdi.h>直接地。你总是包括<Windows.h> ,它会隐式地提取所需的 header 。

  2. 如果您正在编写控制台应用程序,GDI 函数(来自 <WinGdi.h>)对您没有任何好处。 GetConsoleScreenBufferInfo函数可能是您想要使用的函数,但它不是 GDI 函数。它是一个核函数。同样,尽管它在 <WinCon.h> 中进行了技术声明,您不应该直接包含该 header 。只需包括 <Windows.h> .

下面的代码对我来说很好用
(除了 std::cin 实际上不适用于“输入任何键退出...”):

#include <iostream>
#include <conio.h>
#include <Windows.h>

using namespace std;

int main()
{
CONSOLE_SCREEN_BUFFER_INFO csbi;
GetConsoleScreenBufferInfo(GetStdHandle(STD_OUTPUT_HANDLE), &csbi);

int x = csbi.srWindow.Right - csbi.srWindow.Left + 1;
int y = csbi.srWindow.Bottom - csbi.srWindow.Top + 1;

printf("columns: %d\n", x);
printf("rows: %d\n", y);


printf("Enter any key to exit...\n");
int tmp;
cin >> tmp;
return 0;
}

输出:

columns: 90
rows: 33
Enter any key to exit...

如果它对您不起作用,则必须满足以下条件之一:

<罢工>1。问题出在 "GameSystem.h" ,你还没有给我们看。
(没关系,以后请把代码发成文字,不要发图片。)

2。您创建了错误类型的项目(使用 Win32 控制台应用程序模板重新创建一个新项目)。

3。您安装的 Visual Studio 有问题(请尝试重新安装)。

关于c++ - 构建时 wingdi.h 出现 100 多个错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37861781/

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