после миграции на X64: сбой CComPtr CoCreateInstance с rc = 0x80040154 Класс не зарегистрирован
Файл IDL не изменился
//import "objidl.idl";
//import "ICmConnection.idl";
//import "ICmNamedObject.idl";
//import "ipositio.idl";
//import "oaidl.idl";
//import "ocidl.idl";
import "objidl.idl";
import "ICmConnection.idl";
import "ICmNamedObject.idl";
import "ipositio.idl";
[
uuid (96c64c60-24f6-99d0-9f8c-0020af9099cc),
//uuid (E2123FC4-0D5D-4A8F-94BC-6582D9F84109),
object,
pointer_default(unique)
]
interface ICMTopologieDatabase : IUnknown /*IDispatch */{
HRESULT GetObjects ( [in] unsigned classID, [out] ICMPosition** devices );
HRESULT NewObject ( [in] unsigned classID, [out] ICmNamedObject** device );
HRESULT getNamedDevice2 ( [in] LPSTR name , [out] ICmNamedObject** device );
HRESULT InitializeClient();
}
i, отредактированный для параметров компилятора MIDL / env x64 /x64 для X64
когда я проверил uuid 96c64c60-24f6-99d0-9f8c-0020af9099cc в реестре вдов, он вообще не был найден.
когда я проверял файлы, которые генерирует компилятор MIDL, я мог видеть, что это, возможно, было неправильно, возможно, не было правильного переключения на X64
/* Compiler settings for D:\Home\Atiras\V77Ma_64Bit_Branch001\Src\Cm\NmsCmCommon\ITopolog.idl:
Oicf, W1, Zp8, env=Win64 (32b run), target_arch=AMD64 8.00.0603
protocol : dce , ms_ext, c_ext, robust
error checks: none
VC __declspec() decoration level:
__declspec(uuid()), __declspec(selectany), __declspec(novtable)
DECLSPEC_UUID(), MIDL_INTERFACE()
*/
, может быть, с этими настройками компилятора MIDLне созданы никакие реестры и класс не зарегистрирован, каковы правильные ключи тогда?