在Windows 8(64位)上爲64位應用程序調用CreateWindowExA時是否存在已知問題?在Windows 8(Pro 64位)上CreateWindowExA失敗
上下文:我正在使用FOX Toolkit(FOX STABLE 1.6.46)。當編譯並運行最簡單的Hello World示例(「hello」)時,FXWindow.cpp文件中的CreateWindowExA
調用返回一個零HWND句柄(但GetLastError()
不報告錯誤)。這只是發生在一個特定的配置:
OS | OS Platform | App compiled for | CreateWindowExA succeeds? |
Windows 7 | 32-bit | 32-bit | YES |
Windows 7 | 64-bit | 32-bit | YES |
Windows 7 | 64-bit | 64-bit | YES |
Windows 8 | 64-bit | 32-bit | YES |
Windows 8 | 64-bit | 64-bit | NO! (returns NULL) |
有什麼不同有關CreateWindowExA
與最後的配置。請注意,窗口過程是在所有情況下是相同的,並且其接收到的消息是下面的順序:
WM_GETMINMAXINFO
(轉發到DefWindowProc
)WM_NCCREATE
(轉發到DefWindowProc
)
在最後的配置中,它繼續WM_NCDESTROY
,然後CreateWindowExA
返回NULL。
在所有其他配置中,發送WM_NCCALCSIZE
,最後發送WM_CREATE
。
當處理WM_NCCREATE時,DefWindowProc()是否返回FALSE? –
@RemyLebeau:是的 - 它返回'FALSE'。 –