我不懂Win32 api课程

问题描述 投票:0回答:2
int WINAPI WinMain (HINSTANCE hThisInstance,
                     HINSTANCE hPrevInstance,
                     LPSTR lpszArgument,
                     int nCmdShow)
{
    HWND hwnd;               /* This is the handle for our window */
    MSG messages;            /* Here messages to the application are saved */
    WNDCLASSEX wincl;        /* Data structure for the windowclass */
  1. 我知道 WINAPI 是 _stdcall 的快捷方式,但是“_stdcall”是什么?像 int 这样的类型?
  2. 什么是窗把手?是不是窗口顶部像一个条形,右边有 _ [] X ?
  3. 什么是“消息”?
c++ c windows winapi win32gui
2个回答
0
投票
  1. STDCALL 等。调用约定。在某些语言(ASM、C...)中存在一些预定义常量,它们定义、谁以及如何在内部组织例程(函数)之间的调用。

https://en.wikipedia.org/wiki/X86_calling_conventions#:~:text=%20stdcall%20calling%20convention%20is,for%20use%20in%20the%20function.

  1. HWND 是唯一的 ID,在创建后可以在该 ID 下访问该窗口(及其信息)。你可以将其视为名称 id,但句柄通常是指技术上指向指针(结构)的指针。

  2. 消息结构充当正在运行的 winapiprogramm 和 Windows 操作系统之间的中介。操作系统负责处理来自该程序的输入并将通知传回该程序。这是在这个消息的帮助下完成的......它与消息循环紧密耦合。

https://learn.microsoft.com/en-us/windows/win32/learnwin32/window-messages


0
投票
  1. _stdcall 是要使用的调用约定(或 ABI)。将其视为函数与其调用者之间关于如何正确调用该函数的协议。

  2. 窗口句柄是一个不透明指针,用于与该窗口相关的所有内容。您只需将其传递给 winapi 来执行所有与窗口相关的功能,它就会使用该值来了解您正在谈论哪个窗口。

  3. 消息是 winapi 通知您的程序您可能想要处理的事情的方式。例如,如果用户点击 X 按钮,您会收到 WM_CLOSE 消息,您可能应该执行任何您需要执行的操作来正常退出。

© www.soinside.com 2019 - 2024. All rights reserved.