не могу загрузить файл DLL - PullRequest
0 голосов
/ 01 мая 2011

Каждый раз, когда я пытаюсь загрузить DLL (COM), я получаю следующую ошибку:

LDR: LdrpWalkImportDescriptor () не удалось обнаружить манифест, ntstatus 0xc0150002

Я много искал, но ничего не нашел.Пожалуйста, я действительно верю в этот сайт специалистам и надеюсь получить решение этой проблемы.

Я знаю, что проблема в файле манифеста, но я действительно не знаю, что это такое и как это исправить

Я использую VS2010 C ++ и LoadLibrary

Ответы [ 3 ]

2 голосов
/ 01 мая 2011

Это описание кода ошибки из ntstatus.h:

//
// MessageId: STATUS_SXS_CANT_GEN_ACTCTX
//
// MessageText:
//
// Windows was not able to process the application binding information.
// Please refer to your System Event Log for further information.
//
#define STATUS_SXS_CANT_GEN_ACTCTX       ((NTSTATUS)0xC0150002L)

Просмотрите журнал событий Windows для получения дополнительной информации.Очень распространенная ошибка - библиотека времени выполнения CRT, которая нужна DLL, не установлена ​​на вашем компьютере.Опубликуйте то, что вы видите в своем вопросе, если это не поможет.Или обратитесь за помощью к поставщику или автору COM-компонента.

1 голос
/ 01 мая 2011

Команды не загружаются с библиотекой загрузки. Система загружает их сама, когда вы выполняете CoCreateInstance для объекта, реализованного в библиотеке.

Кажется, проблема в том, что библиотеки dll, от которых зависит dll, отсутствуют.

0 голосов
/ 01 мая 2011

Ссылки first и second , которые Google создает для этой ошибки, предполагают, что она обычно вызывается версиями библиотеки времени выполнения.Оба предшествуют VS2010, но я бы начал с поиска аналогичной проблемы.Вы пытались дублировать шаги анализа, описанные в этом первом посте?

(Является ли DLL-то, что вы создали? Если нет, может быть, это на самом деле был построен с VS2008 и соответствует именно этому посту? Если так, возможноВы можете попробовать настройки, рекомендованные здесь.)

...