2013-07-01 1 views
0

Мы пытаемся получить доступ к библиотеке .NET COM из неуправляемого кода C.Ошибка CoCreateInstance с 0x80131500

HRESULT hr = CoCreateInstance(__uuidof(XYZClient::XClient), NULL, CLSCTX_INPROC_SERVER, IID_PPV_ARGS(&pCl)); 

Результат ч является 0x80131500, что означает, что исключение забросил COM-библиотеки. Но при отладке он даже не входит в конструктор нашего .NET-класса.

Это нормально работает при вызове .NET через COM.

Любые идеи о том, как хотя бы получить сообщение об исключении?

EDIT: он отлично работает в Windows XP, но не работает на Win7 x64.

+0

Вы можете использовать Windbg, чтобы копать дальше http://blogs.msdn.com/b/alejacma/archive/2009/08/24/managed-debugging-with-windbg-breaking-on-an-exception-part- 1.aspx –

+0

У вас есть typelib, зарегистрированный для этого класса? – user2702006

+0

Да, все правильно зарегистрировано. Проблема была в зависимых библиотеках. – keaukraine

ответ

0

Проблема была вызвана различиями в библиотеках. Некоторые библиотеки были доступны только как 32-битные сборки, которые вызвали эту проблему. Из-за этой загрузки нашей библиотеки COM не удалось даже до ввода кода конструктора.

 Смежные вопросы

  • Нет связанных вопросов^_^