如何使 WndProc 内联?
How to make WndProc inline?
是否可能,如果可以,如何使 WndProc 内联?
也就是说,我想在 WinMain 中处理 Windows 条消息 WM_...
以避免看似不必要的函数调用。
谢谢。
您不能内联 window 过程。这是设计使然。
注册 window class 时,您可以很容易地看到架构限制。这是通过调用 RegisterClassExW, passing along a WNDCLASSEXW 结构来完成的。该结构需要有效的 lpfnWndProc
。您不能获取内联函数的地址。
还有其他方面要求 window 过程成为实际功能。例如,存储的 window 过程地址用作自定义点并允许 subclassing controls,例如调整标准控件的行为。
您无法避免函数调用。如果要限制变量的范围,可以将 lambda 表达式的结果赋值给 lpfnWndProc
成员。 Visual Studio 确保合成正确的函数签名。
是否可能,如果可以,如何使 WndProc 内联?
也就是说,我想在 WinMain 中处理 Windows 条消息 WM_... 以避免看似不必要的函数调用。
谢谢。
您不能内联 window 过程。这是设计使然。
注册 window class 时,您可以很容易地看到架构限制。这是通过调用 RegisterClassExW, passing along a WNDCLASSEXW 结构来完成的。该结构需要有效的 lpfnWndProc
。您不能获取内联函数的地址。
还有其他方面要求 window 过程成为实际功能。例如,存储的 window 过程地址用作自定义点并允许 subclassing controls,例如调整标准控件的行为。
您无法避免函数调用。如果要限制变量的范围,可以将 lambda 表达式的结果赋值给 lpfnWndProc
成员。 Visual Studio 确保合成正确的函数签名。