1

I am trying to use GPEdit.h in my project, but it is not compiling with many errors:

0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(31,0): Error C2065: 'CLSID_GPESnapIn': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(31,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(31,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(43,0): Error C2065: 'NODEID_Machine': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(43,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(43,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(43,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(51,0): Error C2065: 'NODEID_MachineSWSettings': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(51,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(51,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(51,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(59,0): Error C2065: 'NODEID_User': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(59,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(59,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(59,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(67,0): Error C2065: 'NODEID_UserSWSettings': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(67,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(67,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(67,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(75,0): Error C2065: 'IID_IGPEInformation': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(75,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(75,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(75,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(83,0): Error C2065: 'CLSID_GroupPolicyObject': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(83,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(83,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(83,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(91,0): Error C2065: 'IID_IGroupPolicyObject': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(91,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(91,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(91,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(119,0): Error C2065: 'CLSID_RSOPSnapIn': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(119,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(119,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(119,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(127,0): Error C2065: 'NODEID_RSOPMachine': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(127,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(127,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(127,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(135,0): Error C2065: 'NODEID_RSOPMachineSWSettings': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(135,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(135,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(135,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(143,0): Error C2065: 'NODEID_RSOPUser': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(143,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(143,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(143,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(151,0): Error C2065: 'NODEID_RSOPUserSWSettings': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(151,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(151,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(151,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(159,0): Error C2065: 'IID_IRSOPInformation': undeclared identifier
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(159,0): Error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(159,0): Error C2374: 'DEFINE_GUID': redefinition; multiple initialization
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(159,0): Error C2440: 'initializing': cannot convert from 'initializer list' to 'int'

I tried use .c file extension, and get some other errors:

0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(31,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(43,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(51,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(59,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(67,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(75,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(83,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(91,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(119,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(127,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(135,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(143,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(151,0): Error C2059: syntax error: 'constant'
0>c:\program files (x86)\windows kits\10\include\10.0.17763.0\um\gpedit.h(159,0): Error C2059: syntax error: 'constant'

But I want to use C++, so I need to fix the problem with .cpp.

I am using Visual Studio 2017 with latest updates from Visual Studio Installer, also installed "Desktop Development with C++" Workload. Problem appears on Windows 10 with latest stable updates.

My code pretty simple:

#include "gpedit.h"

int main(int argc, char** argv) {
    return 0;
}

GPEdit.h:

https://pastebin.com/ie55xWhp

Sobieg
  • 11
  • 1
  • before include *"gpedit.h"* include *windows.h* – RbMm Apr 20 '19 at 19:59
  • Have you configured the pathes of "include" folders? I mean https://stackoverflow.com/a/2676429/10128127 – Andrew Patynko Apr 20 '19 at 20:03
  • Thanks, adding `windows.h` before `gpedit.h` helped. – Sobieg Apr 20 '19 at 20:05
  • 1
    @AndrewPatynko - if pathes of "include" folders not configured - will be errors C1083: Cannot open include file. but here another errors. exactly because *windows.h* not included first – RbMm Apr 20 '19 at 20:05

0 Answers0