-3

是否有可能,如果可以,如何使 WndProc 内联?

也就是说,我想在 WinMain 中处理 Windows 消息 WM_...,以避免看似不必要的函数调用。

谢谢你。

4

1 回答 1

1

您不能内联窗口过程。这是设计使然。

注册窗口类时,您可以很容易地看到架构限制。这是通过调用RegisterClassExW并传递WNDCLASSEXW结构来完成的。该结构需要有效的lpfnWndProc. 您不能获取内联函数的地址。

还有其他方面要求窗口过程成为实际功能。例如,存储的窗口过程地址用作自定义点并允许子类化控件,例如调整标准控件的行为。

您无法做任何事情来避免函数调用。如果要限制变量的范围,可以将 lambda 表达式的结果分配给lpfnWndProc成员。Visual Studio 确保合成正确的函数签名。

于 2020-01-27T15:58:49.287 回答