neelamjain2012 Ответов: 1

Mscorlib(source) - ошибка: 80040154 класс не зарегистрирован (исключение из HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))


Я создаю приложение для чтения файла. mdd с использованием заданного кода

class Program
{
static void Main(string[] args)
{
    MDMLib.Document document = new Document();
    document.Open(@"D:\Sample.mdd", "", MDMLib.openConstants.oREAD);
    foreach (IMDMField field in document.Fields)
    {
        Console.WriteLine(field.Name);
    }
    Console.ReadLine();
}
}

но мне дают ошибку. В исходном файле ошибки появляется mscorlib

Message :Retrieving the COM class factory for component with CLSID {432E4F73-87A8-4732-A98D-85CE5B500AD7} failed due to the following error: 80040154 Class not registered (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG)).
Source :mscorlib
    StackTrace :   at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, 
    Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandleInternal& ctor, Boolean& bNeedSecurityCheck) at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.RuntimeType.CreateInstanceDefaultCtor(Boolean publicOnly, Boolean skipCheckThis, Boolean fillCache, StackCrawlMark& stackMark)
   at System.Activator.CreateInstance(Type type, Boolean nonPublic)
   at System.Activator.CreateInstance(Type type)
   at MDDTesting.Program.Main(String[] args) in D:\RebusCode\MDDTesting\MDDTesting\MDDTesting\Program.cs:line 14


Что я уже пробовал:

Я зарегистрировался MDMLib.dll используя команду regasm, но все еще получая эту ошибку.

1 Ответов

Рейтинг:
4

Dave Kreskowiak

Две возможности:

1) Вы действительно не зарегистрировались MDMLib.dll. REGASM работает только с библиотеками .NET. Если этот файл. DLL не является библиотекой .NET, то вместо него используется REGSVR32.

2) один или несколько .DLL-файлы MDMLib.dll зависит от того, отсутствуют ли они и/или зарегистрированы там, где их ожидает MDMLib.


neelamjain2012

Да, вы правы. после того, как узнал, что я пытаюсь зарегистрироваться в regsvr32.exe но я получаю эту ошибку "DLL была загружена, но точка входа DllRegisterServer не была найдена" ...не могли бы вы мне в этом помочь?

Dave Kreskowiak

Это потому, что вы пытаетесь зарегистрировать файл .DLL, не основанный на COM. RegSvr32 не будет работать с библиотекой или .NET DLL.

Лучшие люди, чтобы спросить, как это использовать MDMLib.dll и каковы его требования, так это люди, от которых вы его получили.