Класс не зарегистрирован. Ошибка при создании экземпляра объекта C# через COM из VC++

В проекте VC++ я пытаюсь создать экземпляр (через COM) класса C#, содержащегося в проекте C#.

Факты

  • Проекты C# и C++ скомпилированы с использованием .NET 4.0
  • Файл C# .dll регистрируется с использованием regasm /codebase "CSharpProjectName.dll""и командной строки Windows. сообщает: "Типы зарегистрированы успешно."
  • В проекте C++ я пытаюсь создать экземпляр класса в проекте C#, но получаю HRESULT 0x80040154 — класс не зарегистрирован

Вот пример моей попытки создать экземпляр объекта .NET из библиотеки C# .dll Конкретный класс, экземпляр которого я пытаюсь создать, называется Employee, который для простоты изложения моего вопроса реализует интерфейс IPerson:

    CSharpProjectName::IPersonPtr pPersonPtr;
    HRESULT hr = pPersonPtr.CreateInstance(CSharpProjectName::CLSID_Employee);

Почему я получаю «класс не "registered" несмотря на то, что я зарегистрировал c# .dll с помощью "regasm/codebase" и подтвердил наличие ключа в реестре?

Мы будем очень признательны за любую помощь. Спасибо!

9
задан BigSauce 14 March 2012 в 22:11
поделиться