I have some structures, used for detecting USB Devices (but its not the point):
class USBdevices {
DWORD propertyBufferSize = 0;
char *propertyBuffer = NULL;
SP_DEVINFO_DATA deviceInfoData;
HMODULE hHidLib;
HDEVINFO deviceInfoSet;
SP_INTERFACE_DEVICE_DATA deviceInterfaceData;
DWORD memberIndex = 0;
GUID classGuid;
PSP_DEVICE_INTERFACE_DETAIL_DATA deviceInterfaceDetailData = NULL;
DWORD requiredSize = 0;
DWORD deviceInterfaceDetailDataSize = 0;
}
class USBdevices {
DWORD propertyBufferSize = 0;
char *propertyBuffer = NULL;
SP_DEVINFO_DATA deviceInfoData;
HMODULE hHidLib;
HDEVINFO deviceInfoSet;
SP_INTERFACE_DEVICE_DATA deviceInterfaceData;
DWORD memberIndex = 0;
GUID classGuid;
PSP_DEVICE_INTERFACE_DETAIL_DATA deviceInterfaceDetailData = NULL;
DWORD requiredSize = 0;
DWORD deviceInterfaceDetailDataSize = 0;
}
To copy to clipboard, switch view to plain text mode
here are the error log:
USBdebives.h:27:33: error: ISO C++ forbids initialization of member 'propertyBufferSize'
USBdebives.h:27:33: error: making 'propertyBufferSize' static
USBdebives.h:27:33: error: ISO C++ forbids in-class initialization of non-const static member 'propertyBufferSize'
USBdebives.h:28:29: error: ISO C++ forbids initialization of member 'propertyBuffer'
USBdebives.h:28:29: error: making 'propertyBuffer' static
USBdebives.h:27:33: error: ISO C++ forbids initialization of member 'propertyBufferSize'
USBdebives.h:27:33: error: making 'propertyBufferSize' static
USBdebives.h:27:33: error: ISO C++ forbids in-class initialization of non-const static member 'propertyBufferSize'
USBdebives.h:28:29: error: ISO C++ forbids initialization of member 'propertyBuffer'
USBdebives.h:28:29: error: making 'propertyBuffer' static
To copy to clipboard, switch view to plain text mode
If I do something like that, everythings work fine. But I don't wanna heve variables declarations in constructor or in class method.
USBdevices::USBdevices() //constructor
{
QLibrary("setupapi.dll").
load();
// adding necessary library //and now declarations of all my variables and structs:
DWORD propertyBufferSize = 0;
char *propertyBuffer = NULL;
SP_DEVINFO_DATA deviceInfoData;
HMODULE hHidLib;
HDEVINFO deviceInfoSet;
SP_INTERFACE_DEVICE_DATA deviceInterfaceData;
DWORD memberIndex = 0;
GUID classGuid;
PSP_DEVICE_INTERFACE_DETAIL_DATA deviceInterfaceDetailData = NULL;
DWORD requiredSize = 0;
DWORD deviceInterfaceDetailDataSize = 0;
}
USBdevices::USBdevices() //constructor
{
QLibrary("setupapi.dll").load(); // adding necessary library
//and now declarations of all my variables and structs:
DWORD propertyBufferSize = 0;
char *propertyBuffer = NULL;
SP_DEVINFO_DATA deviceInfoData;
HMODULE hHidLib;
HDEVINFO deviceInfoSet;
SP_INTERFACE_DEVICE_DATA deviceInterfaceData;
DWORD memberIndex = 0;
GUID classGuid;
PSP_DEVICE_INTERFACE_DETAIL_DATA deviceInterfaceDetailData = NULL;
DWORD requiredSize = 0;
DWORD deviceInterfaceDetailDataSize = 0;
}
To copy to clipboard, switch view to plain text mode
Bookmarks