<WinUser.h> 中:

/*
 * Window field offsets for GetWindowLong()
 */
#define GWL_WNDPROC         (-4)
...

#ifdef _WIN64

#undef GWL_WNDPROC
#undef GWL_HINSTANCE
#undef GWL_HWNDPARENT
#undef GWL_USERDATA

#endif /* _WIN64 */

#define GWLP_WNDPROC        (-4)

可以看出确实没定义。

解决方法:

GetWindowLongPtr 和 SetWindowLongPtr 分别替换  GetWindowLong 和 SetWindowLong

GWL_WNDPROC替换为GWLP_WNDPROC,

GWL_USERDATA替换为GWLP_USERDATA

Logo

讨论HarmonyOS开发技术,专注于API与组件、DevEco Studio、测试、元服务和应用上架分发等。

更多推荐