c - c语言C:/mingw/mingw64/x86_64-w64-mingw32/include/wingdi.h:1706:5:错误:未知类型名称'DWORD'
问题描述
内容
你怎么了?我不明白我从未篡改过wingdi.h
如果不行,我就放弃gcc和c语言。我将制作自己的编译器和语言。如果你批评我,我想创建一个像 stackoverflow 这样的服务作为对策。
我做了什么
wingdi.h 看着你,孩子
typedef {
unsigned int UINT,
int WORD,
long long DWORD,
unsigned char UCHAR,
byte BYTE,
void** POINT,
}
环境
视窗 10(64 位)
gcc (x86_64-posix-seh-rev0, 由 MinGW-W64 项目构建) 8.1.0
来源
// 他のだっとめんどくさいから許してね?w
//
#include <stdio.h>
#include <wingdi.h>
#include <winbase.h>
#include <windows.h>
void wingdi__display__write(int win_hei, int win_wid, int display_map);
void main(void){
wingdi__display__write(1000,1000,0);
}
int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
return 0;
}
//wingdi
void wingdi__display__write(int win_hei, int win_wid, int display_map)
{
HDC object = NULL, hdc = NULL;
HWND handle = NULL;
HBRUSH brush = NULL;
hdc = GetDC(handle);
brush = CreateSolidBrush(RGB(0, 0, 0));
SelectObject(object, brush);
BitBlt(hdc, 0, 0, win_wid, win_hei, object, 0, 0, SRCCOPY);
}
解决方案
typedef
如您所示,C 不支持“块”;每个typedef
必须单独出现,如下所示:
typedef unsigned int UINT;
typedef int WORD;
typedef long long DWORD;
typedef unsigned char UCHAR;
typedef uint8_t BYTE;
typedef void** POINT;
顺便说一句,将指针类型隐藏在 a 后面被认为是不好的做法typedef
,所以你POINT
应该被淘汰。
推荐阅读
- java - com.sparsh.conferencedemo.controllers.SessionController 中的 sessionRepository 需要一个找不到的 bean
- reactjs - 在我的网络中,当我多次单击“保存”按钮时,它会保存很多。有什么解决办法吗?作为 React Js
- axios - axios:如何在axios中获取数据
- css - 我的引导卡隐藏在侧栏下
- php - laravel,mysql事务一旦回滚就不起作用
- elasticsearch - 包含字符串字段的对象上的嵌套术语聚合
- c# - 可为空的模板字段
- c# - 使用 nettcpbinding 时出现 WCF 通信异常
- javascript - 用于 Linux 挂载路径的正则表达式以验证用户在 java 脚本中输入的路径值
- amazon-ec2 - 无法将 IP 地址解析为我的域名,但反之亦然