「已注销」 2023-07-26 15:20 采纳率: 100%
浏览 1
已结题

C语言头文件是不是有问题


#include <WinUser.h>
#include <Windows.h>
#include <stdlib.h>
#include <string.h>
HWND hWnd;
HDC tDC, cDC;
int Ww, Wh;
void* bgra;
unsigned short sp=80;
int WRender() {
    while (1) {
        Render();
        Sleep(sp);
    }
    return 0;
}
int Render(){
    typedef struct
    {
        unsigned char b, g, r, a;
    }color;
    BITMAPINFO bmi;
    HBITMAP hbitmap = 0;
    void* prgbdata;
    color* pclr = (color*)bgra;
    color* pwclr;
    int x, y;
    memset(&bmi,0,sizeof(BITMAPINFO));
    bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
    bmi.bmiHeader.biBitCount = 32;
    bmi.bmiHeader.biHeight = Wh;
    bmi.bmiHeader.biWidth = Ww;
    bmi.bmiHeader.biPlanes = 1;
    hbitmap = CreateDIBSection(NULL, &bmi, DIB_PAL_COLORS, &prgbdata, NULL, 0);
    pwclr = (color*)prgbdata;
    memcpy(pwclr,pclr,(unsigned long long)1920*1080*4);
    if (hbitmap)
    {
        RECT rect;
        rect.left = 1920;
        rect.right = 1920 + Ww;
        rect.top = 1080;
        rect.bottom = 1080 + Wh;
        SelectObject(cDC, hbitmap);
        BitBlt(tDC, 1920, 1080, Ww, Wh, cDC, 0, 0, SRCCOPY);
        DeleteObject(hbitmap);
    }
}
int WINAPI WinMain(HINSTANCE hIn,HINSTANCE hIns,LPSTR lp,int nC){
    WNDCLASS Wc = {0,0,0,0,hIn,0,0,0,0,"Wc"};
    RegisterClass(&Wc);
    hWnd = CreateWindow("Wc", "EightLayersOfDream", 0, 0, 0, 960, 540, 0,0,hIn,0);
    Ww = 960;
    Wh = 540;
    ShowWindow(hWnd, nC);
    UpdateWindow(hWnd);
    tDC = GetDC(hWnd);
    cDC = CreateCompatibleDC(tDC);
    MSG M;
    bgra = calloc(4, (unsigned long long)1920 * 1080);
    CreateThread(0,0,WRender,0,0,0);
    while (GetMessage(&M, 0, 0, 0)) {
        if (M.message == WM_SIZE) {
            RECT Rect;
            GetWindowRect(hWnd,&Rect);
            MoveWindow(hWnd, Rect.left, Rect.top, Rect.right - Rect.left, (Rect.right - Rect.left) / 16 * 9, 1);
        }
    }
    return 0;
}

如上,一个简单的窗口,我用VS编译提示HWND找不到,用GCC编译提示WinUser.h存在语法错误,TCC编译则是提示WinUser.h其中一条typedef没加分号。上述三个编译器的头文件我没动过,VS还是今天才安装的,请问怎回事啊?

  • 写回答

2条回答 默认 最新

  • Code Writers 全栈领域新星创作者 2023-07-26 16:20
    关注

    用vc编译试试

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 8月5日
  • 已采纳回答 7月28日
  • 修改了问题 7月26日
  • 创建了问题 7月26日

悬赏问题

  • ¥30 arduino vector defined in discarded section `.text' of wiring.c.o (symbol from plugin)
  • ¥20 关于#c++#的问题:(2)运算二叉树·表达式一般由一个运算符和两个操作数组成:(相关搜索:二叉树遍历)
  • ¥20 如何训练大模型在复杂因素组成的系统中求得最优解
  • ¥15 关于#r语言#的问题:在进行倾向性评分匹配时,使用“match it"包提示”错误于eval(family$initialize): y值必需满足0 <= y <= 1“请问在进行PSM时
  • ¥45 求17位带符号原码乘法器verilog代码
  • ¥20 PySide6扩展QLable实现Word一样的图片裁剪框
  • ¥15 matlab数据降噪处理,提高数据的可信度,确保峰值信号的不损失?
  • ¥15 怎么看我在bios每次修改的日志
  • ¥15 python+mysql图书管理系统
  • ¥15 Questasim Error: (vcom-13)