Closed czyt1988 closed 1 year ago
看起来是WIN32_WINNT宏的值太老导致的,你手动全局定义一下就好了,值就给0x0A00
,这个能解锁所有的限制
我看你framelesshelper_windows.h里对_WIN32_WINNT进行了重新定义,可消除WM的异常
#if __has_include(<sdkddkver.h>)
# include <sdkddkver.h>
#endif
#ifndef _WIN32_WINNT_WIN10
# define _WIN32_WINNT_WIN10 0x0A00
#endif
#ifndef NTDDI_WIN10_NI
# define NTDDI_WIN10_NI 0x0A00000C
#endif
#ifndef WINVER
# define WINVER _WIN32_WINNT_WIN10
#endif
#ifndef _WIN32_WINNT
# define _WIN32_WINNT _WIN32_WINNT_WIN10
#endif
#ifndef NTDDI_VERSION
# define NTDDI_VERSION NTDDI_WIN10_NI
#endif
//保证_WIN32_WINNT和WINVER 的版本为_WIN32_WINNT_WIN10
#if _WIN32_WINNT < _WIN32_WINNT_WIN10
#undef _WIN32_WINNT
#define _WIN32_WINNT _WIN32_WINNT_WIN10
#endif
#if WINVER < _WIN32_WINNT_WIN10
#undef WINVER
#define WINVER _WIN32_WINNT_WIN10
#endif
#include <windows.h>
#include <uxtheme.h>
#include <shellapi.h>
#include <dwmapi.h>
另外我针对原来所有WM打头的错误进行了ifdef,目前WM的宏定义问题解决了,但还有一个错误如下:
上面的改动麻烦你先提个PR吧
下面这个错误不要看Qt头文件,你定位一下FramelessHelper哪个变量引起的,截图给我看看
下面这个错误不要看Qt头文件,你定位一下FramelessHelper哪个变量引起的,截图给我看看
pr已经提交(#306),第二个错误是因为QPointer< QWidget > window=nullptr;
的初始化导致的,在mingw下,头文件中申明的QPointer< QWidget > window
不能直接初始化为nullptr,QPointer< QWidget > window=nullptr;
和QPointer< QWidget > window{nullptr};
都不行,直接去掉初始化就好,QPointer
默认就是nullptr
msvc可编译,但mingw无法编译
有部分WM_大头的宏没有定义
我进入
winuser.h
里面,貌似_WIN32_WINNT
这个条件无法满足(我的系统是windows11)另外还有2个错误