简体   繁体   English

c 语言 C:/mingw/mingw64/x86_64-w64-mingw32/include/wingdi.h:1706:5: 错误: 未知类型名称 'DWORD'

[英]c language C:/mingw/mingw64/x86_64-w64-mingw32/include/wingdi.h:1706:5: error: unknown type name 'DWORD'

Contents内容

What is wrong with you?你怎么了? I don't understand I've never tampered with wingdi.h我不明白我从来没有篡改过 wingdi.h

If it doesn't work, I'll abandon gcc and c language.如果不行,我就放弃gcc和c语言。 I'll make my own compiler and language.我将制作自​​己的编译器和语言。 If you criticize me, I'd like to create a service like stackoverflow as a countermeasure.如果你批评我,我想创建一个像stackoverflow这样的服务作为对策。

What I did我做了什么

wingdi.h Here's looking at you, kid wingdi.h 正在看着你,孩子

typedef {
  unsigned int  UINT,
  int           WORD,
  long long     DWORD,
  unsigned char UCHAR,
  byte          BYTE,
  void**        POINT,
}

Environment环境

windows 10 (64bits)视窗 10(64 位)

gcc (x86_64-posix-seh-rev0, Built by MinGW-W64 project) 8.1.0 gcc (x86_64-posix-seh-rev0, 由 MinGW-W64 项目构建) 8.1.0

souruce

// 他のだっとめんどくさいから許してね?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);
}

C does not support a "block typedef " as you have shown;正如您所展示的,C 不支持“块typedef ”; each typedef must appear separately as follows:每个typedef必须单独出现,如下所示:

typedef unsigned int  UINT;
typedef int           WORD;
typedef long long     DWORD;
typedef unsigned char UCHAR;
typedef uint8_t       BYTE;
typedef void**        POINT;

And BTW, it is considered bad practice to hide a pointer type behind a typedef , so your POINT should be eliminated.顺便说一句,将指针类型隐藏在typedef后面被认为是不好的做法,因此应该消除您的POINT

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM