【发布时间】:2019-01-24 20:46:27
【问题描述】:
我收到一个奇怪的编译错误,如下所示。 我没有看到任何错误指向我的源文件。但是我的 VS2017 C++ DLL 项目仍然无法编译,因为标准 Windows SDK 文件中存在以下编译错误。
我不确定这意味着什么以及如何解决它。任何建议都会有所帮助。
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\prsht.h(609): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\prsht.h(609): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(268): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(268): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(273): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(273): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(286): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(286): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(302): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(302): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(310): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(310): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(460): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(460): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(477): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(477): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1116): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1116): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1125): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1125): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1141): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1141): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1152): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1152): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1172): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1172): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1675): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1675): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1717): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1717): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1728): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1728): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1740): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1740): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1749): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1749): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1771): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1771): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1781): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1781): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1822): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1822): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1831): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(1831): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2120): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2120): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2129): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2129): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2145): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2145): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2153): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2153): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2470): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2470): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2479): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2479): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2831): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(2831): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4435): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4435): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4453): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4453): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4506): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4506): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4517): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4517): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4524): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4524): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4553): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4553): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4620): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4620): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4625): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4625): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4645): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4645): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4668): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4668): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4679): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(4679): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5429): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5429): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5438): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5438): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5477): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5477): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5482): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5482): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5558): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5558): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5609): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5609): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5618): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5618): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5780): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5780): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5785): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5785): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5834): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5834): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5841): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5841): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5861): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5861): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5869): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(5869): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6204): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6204): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6573): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6573): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6590): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6590): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6609): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6609): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6776): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6776): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6785): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6785): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6793): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6793): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6814): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6814): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6822): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6822): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6843): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6843): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6852): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6852): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6874): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6874): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6881): error C3646: 'nmhdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6881): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6939): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(6939): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(7097): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(7097): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(7118): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(7118): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(7141): error C3646: 'hdr': unknown override specifier
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(7141): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(7770): error C2061: syntax error: identifier 'LPSCROLLINFO'
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\commctrl.h(7785): error C2061: syntax error: identifier 'LPSCROLLINFO'
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\shlobj_core.h(563): error C2061: syntax error: identifier 'LPSHELLEXECUTEINFOA'
1>c:\program files (x86)\windows kits\10\include\10.0.16299.0\um\shlobj_core.h(571): error C2061: syntax error: identifier 'LPSHELLEXECUTEINFOW'
【问题讨论】:
-
从一个最小的完整、(不可)编译的示例开始,然后,如果问题在该活动期间没有自行回答,请将其展示给我们。 stackoverflow.com/help/mcve
-
您收到此错误是因为 NMHDR 未定义。在包含 commctrl.h 之前只需 #include
标签: c++ visual-studio c++11 visual-c++ compilation