Вот мой C++ код в конструкторе ThorDetectorSwitch.cpp файла:В любом случае, чтобы вызвать CoInitialize() перед списком инициализации?
ThorDetectorSwitch::ThorDetectorSwitch() : _mcSwitch(__uuidof(MCLControlClass))
{
_A = WstringToBSTR(L"A");
_B = WstringToBSTR(L"B");
_C = WstringToBSTR(L"C");
_D = WstringToBSTR(L"D");
_deviceDetected = FALSE;
}
Как вы можете видеть, в списке инициализации, _mcSwitch(__uuidof(MCLControlClass))
используется для инициализации COM-объект (MCLControlClass, который зарегистрирован из COM DLL).
Мне интересно, так или иначе, я могу вызвать CoInitialize() перед этим списком инициализации? Потому что я получаю исключения «CoInitialize() не назывался». Или любой другой способ избежать этого исключения?
Большое спасибо.
Не используйте его класс 'CoInitialize' перед его построением. Вместо этого вызовите 'CoInitialize' перед созданием этого класса. –
Вам лучше сосредоточиться на том, почему этот конструктор работает слишком рано. Порядок инициализации - нерешенная проблема в C++. –