У меня есть программа на C ++, вызывающая интерфейс, который я реализовал в C #.Я последовательно получаю ошибку 0x80131023 HOST_E_CLRNOTAVAILABLE
, которая определяется как CLR has been disabled due to unrecoverable error
.Программа на c ++ не выдает эту ошибку, если не вызывается моя программа, но я не вижу ни одной из своих функций в трассировке стека.У кого-нибудь есть какие-либо советы о том, как решить проблему?
РЕДАКТИРОВАТЬ: я использую позднюю привязку для создания интерфейса IDispatch.
IUnknown* pUnknown;
hRC = CoCreateInstance(
MyProgID,
0,
CLSCTX_ALL,
IID_IUnknown,
(void**) &pUnknown);
hRC = pUnknown->QueryInterface(
IID_IDispatch,
(void**) &_pService );
pUnknown->Release();
Затем вызывается с помощью:
hRC = _pService->Invoke(
_DispIDs[nDispIDIndex], IID_NULL, LOCALE_USER_DEFAULT,
METHOD_TO_CALL, &Disp, &VarResult, NULL, NULL );
Вызывает большинство методов успешно без ошибок.Когда вызывается метод Close, он возвращает указанную ошибку.