WMI вызывает исключение "0x800706B5: интерфейс неизвестен."
У меня есть фрагмент кода, который работал без проблем до сих пор. Он использует API инструментария управления Windows. Я не изменил ни код, ни что-либо в моей машине (насколько я знаю), но теперь, когда код запускается под отладчиком Visual Studio (либо 2008, либо 2003), он вызывает исключение, по-видимому, при вызове
ConnectServer
в приведенном ниже коде:HRESULT hRes; // Initialize CoInitialize(0); // Create the locator IWbemLocator* pIWbemLocator= NULL; IWbemServices* pWbemServices= NULL; hRes= CoCreateInstance( CLSID_WbemLocator, 0, CLSCTX_INPROC_SERVER, IID_IWbemLocator, (LPVOID *) &pIWbemLocator); if (hRes != S_OK) { return false; // Could not create the locator } // Connect to the server hRes= pIWbemLocator->ConnectServer( L"ROOT\\CIMV2", // WMI namespace NULL, // User name NULL, // User password 0, // Locale NULL, // Security flags 0, // Authority 0, // Context object &pWbemServices // IWbemServices proxy ); if (hRes != S_OK) { return false; // Could not connect to the server }
Если я проигнорирую исключение, то получу исключение "0xC0020043: произошла внутренняя ошибка в RPC.".
Я уверен, что этот код верен, поскольку он используется уже много лет. И я подчеркиваю, что при выполнении без отладчика все еще работает (как релиз, так и отладочные сборки), поэтому я не могу винить свою конфигурацию Windows. Но я застрял, когда хочу отладить.
Кто-нибудь может помочь ?