Ошибка 0x8007007e не найден указанный модуль

Если вы получили код ошибки 0x8007007E на компьютере Windows 10/8/7, то вы ищете решение, и вы попали в нужное место. Код ошибки 0x8007007E может появиться в следующих трех сценариях, и в этом посте предлагаются некоторые рекомендации, которые могут помочь вам решить вашу проблему:

  1. Запуск Центра обновления Windows
  2. Отправить/получить в Outlook
  3. Подключение к принтеру.

Содержание

  1. Код ошибки 0x8007007E
  2. Ошибка Центра обновления Windows 0x8007007E
  3. Ошибка 0x8007007E в Outlook
  4. Ошибка 0x8007007E в принтере

Код ошибки 0x8007007E

Давайте посмотрим на возможные исправления для трех разных сценариев.

Ошибка Центра обновления Windows 0x8007007E

Windows 10 Update Error Code 0x8007007E возникает, когда обновления не синхронизированы. Это происходит как для автономных компьютеров с Windows 10, так и при подключении к Enterprise. Windows Server управляет обновлениями на всех компьютерах в сети предприятия.

Microsoft указывает, что, когда исправление не установлено перед синхронизацией, это происходит.

Происходит при сбое синхронизации обновления, поскольку у вас не установлено исправление до включения синхронизации обновления. В частности, операция CopyToCache не выполняется на клиентах, которые уже загрузили обновление. Это связано с тем, что службы обновления Windows Server содержат неверные метаданные, связанные с обновлением.

Чтобы это исправить, нам нужно восстановить службы Windows Server Update Services. Для предприятия, если у вас есть несколько серверов WSUS, вам нужно повторить то же самое на каждом сервере. Вы также можете запустить его только на тех серверах, которые синхронизировали метаданные перед установкой исправления. IT Pro может проверить журнал WSUS с помощью консоли администратора WSUS или API. Это может помочь им выяснить, есть ли статус синхронизации метаданных.

1] Удалить содержимое папки распространения программного обеспечения вручную

Windows загрузит все файлы обновлений в эту папку. Он действует как буфер перед установкой на компьютер с Windows 10. Обязательно удалите содержимое папки распространения программного обеспечения (C: Windows SoftwareDistribution DataStore) вручную. Вам придется остановить службы Центра обновления Windows, прежде чем удалять эти файлы. После этого перезапустите службу Windows Update.

Это относится как к автономным компьютерам, так и к корпоративным компьютерам.

2] Запустите средство устранения неполадок Центра обновления Windows .

Если у вас есть автономный компьютер, вы можете запустить средство устранения неполадок. Windows поставляется со встроенным средством устранения неполадок Центра обновления Windows. Вы можете запустить то, что решит проблему вокруг Windows 10 Update, чтобы решить эту проблему.

Как только компьютер синхронизируется с сервером обновлений (Microsoft Update Server или Enterprise Server), все необходимые обновления будут установлены в первую очередь. Остальные обновления будут опубликованы позже.

Ошибка 0x8007007E в Outlook

Когда эта ошибка появляется в клиенте Microsoft Outlook, она запрещает пользователю отправлять или получать любые электронные письма. Обычно это происходит по двум причинам – [1], когда конечный пользователь пытается перейти на Windows 10 и [2], если пользователь обновляется до следующей версии Office. Есть два способа решить эту проблему:

1] Восстановить/переустановить клиент Office Outlook:

Если восстановление Microsoft Outlook не помогает, вы можете установить почтовый клиент снова. Иногда обновление портит конфигурацию при изменении версии, и переустановка исправит это.

2] Запустите Outlook от имени администратора.

Найдите Outlook в меню программы, затем нажмите Shift + правой кнопкой мыши и выберите «Запуск от имени администратора».

Ошибка 0x8007007E в принтере

Эта ошибка появляется, когда клиентский компьютер пытается подключиться к удаленному принтеру. Вы увидите сообщение об ошибке, в котором будет сказано «Указанный модуль не найден». Также это происходит в среде сервер-клиент.

Когда 32-разрядный универсальный драйвер установлен на сервере, он создает запись в реестре. Этот ключ сообщает клиентскому компьютеру, что ему нужна копия файла DLL, чтобы принтер работал на клиентском компьютере.

Однако, если это 64-битный клиент, ему потребуется 64-битная версия драйвера. Но так как сервер предлагает 32-разрядную версию драйвера (из-за записи в реестре), это приводит к этой ошибке. Запись реестра на сервере находится по адресу:

HKLM SYSTEM CurrentControlSet Control Print Printers \ CopyFiles биди.

Чтобы решить эту проблему, просто удалите этот ключ. Отправьте это, когда запрос сделан 64-битным клиентом, больше не будет сказано, что ему нужно скопировать неправильный файл.

Сообщите нам, помогло ли это исправить ошибку 0x8007007E на вашем компьютере.

I have a dll library with unmanaged C++ API code I need to use in my .NET 4.0 application. But every method I try to load my dll I get an error:

Unable to load DLL ‘MyOwn.dll’: The specified module could not be found. (Exception from HRESULT: 0x8007007E)

I have read and tried several solutions I have found on the internet. Nothing works..

I have tried using following methods:

[DllImport("MyOwn.dll",  CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs((UnmanagedType.I4))]
public static extern Int32 MyProIni(string DBname, string DBuser_pass,
    string WorkDirectory, ref StringBuilder ErrorMessage);

When I tried following this article and when I run this example (from the downloaded code) it runs without a problem (the dll used is in the bin/debug folder)

I have copied my dll (along with all the files the it depends on into my bin folder).

I also tried this approach but got the same error:

[DllImportAttribute(MyOwnLibDllPath, EntryPoint="TMproIni")]
[return: MarshalAs(UnmanagedType.I4)]
public static extern  int MyproIni(string DBname, string DBuser_pass, 
    string WorkDirectory, ref StringBuilder ErrorMessage);

Any suggestions?

Chronicler's user avatar

asked Jan 25, 2012 at 12:55

Ingimar Andresson's user avatar

From what I remember on Windows the search order for a dll is:

  1. Current Directory
  2. System folder, C:windowssystem32 or c:windowsSysWOW64 (for 32-bit process on 64-bit box).
  3. Reading from the Path environment variable

In addition I’d check the dependencies of the DLL, the dependency walker provided with Visual Studio can help you out here, it can also be downloaded for free: http://www.dependencywalker.com

Graviton's user avatar

Graviton

81.4k143 gold badges420 silver badges602 bronze badges

answered Jan 25, 2012 at 13:11

display101's user avatar

5

You can use the dumpbin tool to find out the required DLL dependencies:

dumpbin /DEPENDENTS my.dll

This will tell you which DLLs your DLL needs to load. Particularly look out for MSVCR*.dll. I have seen your error code occur when the correct Visual C++ Redistributable is not installed.

You can get the «Visual C++ Redistributable Packages for Visual Studio 2013» from the Microsoft website. It installs c:windowssystem32MSVCR120.dll

In the file name, 120 = 12.0 = Visual Studio 2013.

Be careful that you have the right Visual Studio version (10.0 = VS 10, 11 = VS 2012, 12.0 = VS 2013…) right architecture (x64 or x86) for your DLL’s target platform, and also you need to be careful around debug builds. The debug build of a DLL depends on MSVCR120d.dll which is a debug version of the library, which is installed with Visual Studio but not by the Redistributable Package.

answered Sep 5, 2014 at 11:34

Anthony Hayward's user avatar

5

The DLL has to be in the bin folder.

In Visual Studio, I add the dll to my project NOT in References, but «Add existing file». Then set the «Copy to Output Directory» Property for the dll to «Copy if newer».

answered Mar 4, 2016 at 5:28

Jeremy Thompson's user avatar

Jeremy ThompsonJeremy Thompson

61.3k33 gold badges188 silver badges318 bronze badges

1

This is a ‘kludge’ but you could at least use it to sanity-test:
Try hard-coding the path to the DLL in your code

[DllImport(@"C:\mycompany\MyDLL.dll")]

Having said that; in my case running dumpbin /DEPENDENTS as suggested by @anthony-hayward, and copying over 32-bit versions of the DLLs listed there into my working directory solved this problem for me.

The message is just a bit misleading, becuase it isn’t «my» dll that can’t be loaded — it’s the dependencies

answered Sep 14, 2017 at 14:09

Black's user avatar

BlackBlack

4,9906 gold badges62 silver badges90 bronze badges

Try to enter the full-path of the dll.
If it doesn’t work, try to copy the dll into the system32 folder.

answered Jan 25, 2012 at 13:00

Headpuster's user avatar

HeadpusterHeadpuster

2691 gold badge2 silver badges9 bronze badges

2

«Unable to load DLL ‘xxx.dll’: The specified module could not be found. (Exception from HRESULT: 0x8007007E)» means the file CAN be found BUT it’s not able to load it. Try to copy the DLL file to the root folder of your application, some DLL libraries need to be available in the root folder of the application in order for it to work. Or check if there are any other depending DLL files required by it.

«Cannot find DLL ‘xxx.dll’: …» means the file CANNOT be found. Try to check the path. For example, [DllImport(@"LibrariesFolderxxx.dll")]

answered Mar 23, 2021 at 4:34

JeeShen Lee's user avatar

JeeShen LeeJeeShen Lee

3,3965 gold badges38 silver badges59 bronze badges

1

Ensure that all dependencies of your own dll are present near the dll, or in System32.

answered Jan 25, 2012 at 13:10

Felice Pollano's user avatar

Felice PollanoFelice Pollano

32.7k9 gold badges75 silver badges115 bronze badges

Turn on the fusion logging, see this question for lots of advice on how to do that. Debugging mixed-mode apps loading problems can be a right royal pain. The fusion logging can be a big help.

Community's user avatar

answered Jan 25, 2012 at 13:36

Chris O's user avatar

Chris OChris O

5,0193 gold badges35 silver badges42 bronze badges

Make sure you set the Build Platform Target to x86 or x64 so that it is compatible with your DLL — which might be compiled for a 32 bit platform.

answered Sep 22, 2014 at 18:49

Grantly's user avatar

GrantlyGrantly

2,5392 gold badges20 silver badges31 bronze badges

There is one very funny thing (and has a technical relevance) which might waste your hours so thought of sharing it here —

I created a console application project ConsoleApplication1 and a class library project ClassLibrary1.

All the code which was making the p/invoke was present in ClassLibrary1.dll. So before debugging the application from visual studio I simply copied the C++ unmanaged assembly (myUnmanagedFunctions.dll) into the bindebug directory of ClassLibrary1 project so that it can be loaded at run-time by the CLR.

I kept getting the

Unable to load DLL

error for hours. Later on I realized that all such unmanaged assemblies which are to be loaded need to be copied into the bindebug directory of the start-up project ConsoleApplication1 which is usually a win form, console or web application.

So please be cautious the Current Directory in the accepted answer actually means Current Directory of main executable from where you application process is starting. Looks like an obvious thing but might not be so at times.

Lesson Learnt — Always place the unamanaged dlls in the same directory as the start-up executable to ensure that it can be found.

answered Jan 17, 2017 at 9:09

RBT's user avatar

RBTRBT

23.7k21 gold badges158 silver badges240 bronze badges

3

I had the same problem when I deployed my application to test PC. The problem was development PC had msvcp110d.dll and msvcr110d.dll but not the test PC.

I added «Visual Studio C++ 11.0 DebugCRT (x86)» merge module in InstalledSheild and it worked. Hope this will be helpful for someone else.

answered Feb 1, 2016 at 11:56

kakopappa's user avatar

kakopappakakopappa

5,0235 gold badges54 silver badges73 bronze badges

In my case one unmanaged dll was depending on another which was missing. In that case the error will point to the existing dll instead of the missing one which can be really confusing.

That is exactly what had happen in my case. Hope this helps someone else.

answered Feb 22, 2019 at 14:05

Rahatur's user avatar

RahaturRahatur

3,1273 gold badges33 silver badges47 bronze badges

If the DLL and the .NET projects are in the same solution and you want to compile and run both every time, you can right click the properties of the .NET project, Build events, then add something like the following to Post-build event command line:

copy $(SolutionDir)DebugMyOwn.dll .

It’s basically a DOS line, and you can tweak based on where your DLL is being built to.

answered Dec 18, 2014 at 15:07

SharpC's user avatar

SharpCSharpC

6,8464 gold badges45 silver badges40 bronze badges

I think your unmanaged library needs a manifest.
Here is how to add it to your binary. and here is why.

In summary, several Redistributable library versions can be installed in your box but only one of them should satisfy your App, and it might not be the default, so you need to tell the system the version your library needs, that’s why the manifest.

Community's user avatar

answered May 27, 2015 at 15:50

Eugenio Miró's user avatar

Eugenio MiróEugenio Miró

2,3902 gold badges28 silver badges38 bronze badges

Setup: 32-bit Windows 7

Context: Installed a PCI-GPIB driver that I was unable to communicate through due to the aforementioned issue.

Short Answer: Reinstall the driver.

Long Answer:
I also used Dependency Walker, which identified several missing dependency modules. Immediately, I thought that it must have been a botched driver installation. I didn’t want to check and restore each missing file.

The fact that I was unable to find the uninstaller under Programs and Features of the Control Panel is another indicator of bad installation. I had to manually delete a couple of *.dll in system32 and registry keys to allow for driver re-installation.

Issue fixed.

The unexpected part was that not all dependency modules were resolved. Nevertheless, the *.dll of interest can now be referenced.

answered Oct 20, 2016 at 16:15

icernos's user avatar

icernosicernos

3973 silver badges6 bronze badges

I have come across the same problem, In my case I had two 32 bit pcs.
One with .NET4.5 installed and other one was fresh PC.

my 32-bit cpp dll(Release mode build) was working fine with .NET installed PC but Not with fresh PC where I got the below error

Unable to load DLL ‘PrinterSettings.dll’: The specified module could not be
found. (Exception from HRESULT: 0x8007007E)

finally,

I just built my project in Debug mode configuration and this time my
cpp dll was working fine.

answered Jan 25, 2018 at 7:58

Abu Muhammad's user avatar

0

Also faced the same problem when using unmanaged c/c++ dll file in c# environment.

1.Checked the compatibility of dll with 32bit or 64bit CPU.

2.Checked the correct paths of DLL .bin folder, system32/sysWOW64 , or given path.

3.Checked if PDB(Programme Database) files are missing.This video gives you ans best
undestand about pdb files.

When running 32-bit C/C++ binary code in 64bit system, could arise this because of platform incompatibility. You can change it from Build>Configuration manager.

answered Jan 17, 2019 at 4:41

Yuresh Karunanayake's user avatar

I faced the same problem when import C++ Dll in .Net Framework +4, I unchecked Project->Properties->Build->Prefer 32-bit and it solved for me.

answered Mar 24, 2020 at 17:14

Mamo Ghandi's user avatar

Mamo GhandiMamo Ghandi

772 silver badges10 bronze badges

It has nothing to do with dependencies if you checked all dependencies and you know you got them all, it has nothing to do with the file being in the wrong directory either or incorrect ARGUMENTS passed to dll, the DLL Fails to load using LoadLibrary itself.. you could check the address returned from LoadLibrary is always 0x0000000 (not loaded).

I couldn’t figure this error out either it worked fine on Windows 7, but on Windows 10 it doesn’t work. I fixed the problem though it had nothing to do with missing dependencies or Runtime redistributable packs.

The problem was I had to pack the DLL with upx and it started working again.

Something with the file being unpacked and compiled on old Windows XP operating system created a bad PE Header or Bad file format or something, but packing it with UPX did the trick works fine now and the DLL got 3x smaller haha.

answered Jul 4, 2021 at 22:43

SSpoke's user avatar

SSpokeSSpoke

5,64010 gold badges71 silver badges123 bronze badges

I got this error for one C++ project in our solution, and only on our buildmaster’s machine. The rest of us could build it with no problem.

In our case it was because that particular project had <WindowsTargetPlatformVersion> in the .vcxproj file set to «10.0» vs. «10.0.18362.0» as in all our other C++ projects.

Not specifying the entire SDK version number seems to have allowed MSBuild to choose the newest(?) SDK and associated build tools.

Our buildmaster likely had the remnants of a newer SDK on his machine, and MSBuild was trying to use it (and thus RC.exe was not found).

In any case, bringing up the project’s property page and changing Configuration Properties > General > Windows SDK Version to «10.0.18362.0» (or whichever specific version of the SDK you have installed) for all of the project’s configurations/platforms did the trick.

answered Aug 14, 2021 at 1:32

Scott Smith's user avatar

Scott SmithScott Smith

3,8702 gold badges31 silver badges63 bronze badges

У меня есть библиотека dll с неуправляемым кодом С++ API, который мне нужно использовать в моем приложении .NET 4.0. Но каждый метод, который я пытаюсь загрузить с моей DLL, я получаю:

Невозможно загрузить DLL ‘MyOwn.dll’: указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)

Я прочитал и попробовал решения severa, которые я нашел в Интернете. Ничего не работает.

Я попытался использовать следующие методы:

[DllImport("MyOwn.dll",  CallingConvention = CallingConvention.Cdecl)]
[return: MarshalAs((UnmanagedType.I4))]
public static extern Int32 MyProIni(string DBname, string DBuser_pass,
    string WorkDirectory, ref StringBuilder ErrorMessage);

Когда я попытался выполнить эту статью, и когда я запускаю этот пример (из загруженного кода), он запускается без проблем (используемая dll находится в bin/debug папка)

Я скопировал свою dll (вместе со всеми файлами в зависимости от моей папки bin).

Я также пробовал этот подход, но получил ту же ошибку:

[DllImportAttribute(MyOwnLibDllPath, EntryPoint="TMproIni")]
[return: MarshalAs(UnmanagedType.I4)]
public static extern  int MyproIni(string DBname, string DBuser_pass, 
    string WorkDirectory, ref StringBuilder ErrorMessage);

Любые предложения?

25 янв. 2012, в 14:11

Поделиться

Источник

15 ответов

Из того, что я помню в Windows, порядок поиска для dll:

  • Текущий каталог
  • Системная папка, C:windowssystem32 or c:windowsSysWOW64 (для 32-разрядного процесса в 64-битной ячейке).
  • Чтение из переменной среды Path

Кроме того, я бы проверял зависимости DLL, хост зависимостей, предоставляемый Visual Studio, может помочь вам здесь, он также может быть загружен бесплатно: http://www.dependencywalker.com

display101
25 янв. 2012, в 13:23

Поделиться

Вы можете использовать инструмент dumpbin для поиска необходимых зависимостей DLL:

dumpbin /DEPENDENTS my.dll

Это расскажет вам, какие DLL файлы должны загружать DLL. Особенно обратите внимание на MSVCR *.dll. Я видел, что ваш код ошибки возникает, когда не установлен Redistributable Visual С++.

Вы можете получить «Распространяемые пакеты Visual С++ для Visual Studio 2013» с веб-сайта Microsoft. Он устанавливает c:windowssystem32MSVCR120.dll

В имени файла 120 = 12.0 = Visual Studio 2013.

Будьте осторожны, чтобы у вас была правильная версия Visual Studio (10.0 = VS 10, 11 = VS 2012, 12.0 = VS 2013…), правильная архитектура (x64 или x86) для вашей целевой платформы DLL, а также вам нужно будьте осторожны в сборке отладки. Отладочная сборка DLL зависит от MSVCR120d.dll, которая является отладочной версией библиотеки, которая устанавливается с помощью Visual Studio, но не с помощью распространяемого пакета.

Anthony Hayward
05 сен. 2014, в 12:00

Поделиться

DLL должна находиться в папке bin.

В Visual Studio я добавляю dll в свой проект (НЕ в ссылках, но «Добавить существующий файл» ). Затем установите для свойства «Копировать в выходной каталог» для dll значение «Копировать, если новое».

Jeremy Thompson
04 март 2016, в 06:58

Поделиться

Попробуйте ввести полный путь к dll.
Если это не сработает, попробуйте скопировать dll в папку system32.

Headpuster
25 янв. 2012, в 13:04

Поделиться

Есть одна очень забавная вещь (и имеет техническую значимость), которая может растратить ваши часы, поэтому подумал о том, чтобы поделиться ею здесь —

Я создал проект консольного приложения ConsoleApplication1 и проект библиотеки классов ClassLibrary1.

Весь код, который делал p/invoke, присутствовал в ClassLibrary1.dll. Поэтому перед отладкой приложения из visual studio я просто скопировал неуправляемую сборку С++ (myUnmanagedFunctions.dll) в каталог bindebug проекта ClassLibrary1, чтобы он мог быть загружен в среду выполнения CLR.

Я продолжал получать

Невозможно загрузить DLL

ошибка в течение нескольких часов. Позже я понял, что все неуправляемые сборки, которые необходимо загрузить, необходимо скопировать в каталог bindebug стартового проекта ConsoleApplication1, который обычно представляет собой форму выигрыша, консольное или веб-приложение.

Итак, будьте осторожны, Current Directory в принятом ответе фактически означает Current Directory основного исполняемого файла, с которого начинается процесс приложения. Похоже на очевидную вещь, но иногда это может быть не так.

Извлеченный урок. Всегда размещайте неуправляемые DLL в том же каталоге, что и исполняемый файл запуска, чтобы убедиться, что он может быть найден.

RBT
17 янв. 2017, в 09:21

Поделиться

Убедитесь, что все зависимости вашей собственной DLL находятся рядом с dll или в System32.

Felice Pollano
25 янв. 2012, в 14:04

Поделиться

Это «kludge» , но вы могли бы хотя бы использовать его для проверки на работоспособность:
Попробуйте жестко кодировать путь к DLL в вашем коде

[DllImport(@"C:\mycompany\MyDLL.dll")]

Сказав это; в моем случае с запуском dumpbin /DEPENDENTS, как было предложено @anthony-hayward, и копирование через 32-разрядных версий DLL, перечисленных там в моем рабочем каталоге, решило эту проблему для меня.

Сообщение просто немного вводит в заблуждение, потому что это не «моя» DLL, которая не может быть загружена — это зависимости

Black
14 сен. 2017, в 14:53

Поделиться

У меня была такая же проблема, когда я развернул свое приложение для тестирования ПК. Проблема заключалась в разработке ПК с msvcp110d.dll и msvcr110d.dll, но не на тестовом ПК.

Я добавил «Слиточный модуль Visual Studio С++ 11.0 DebugCRT (x86)» в InstalledSheild, и он сработал. Надеюсь, это будет полезно для кого-то другого.

kakopappa
01 фев. 2016, в 13:55

Поделиться

Если проекты DLL и .NET находятся в одном и том же решении, и вы хотите их компилировать и запускать каждый раз, вы можете щелкнуть правой кнопкой мыши по свойствам проекта .NET, постройкам событий, а затем добавить что-то вроде следующего в сообщение Командная строка события:

copy $(SolutionDir)DebugMyOwn.dll .

В основном это строка DOS, и вы можете настроить ее на основе того, где строится ваша DLL.

SharpC
18 дек. 2014, в 15:32

Поделиться

Убедитесь, что вы устанавливаете платформу Build Platform Target на x86 или x64, чтобы она была совместима с вашей DLL, которая может быть скомпилирована для 32-битной платформы.

Grantly
22 сен. 2014, в 19:26

Поделиться

Включите ведение журнала фьюжн, см. этот вопрос за советом о том, как это сделать. Отладка проблем с загрузкой приложений смешанного режима может быть правильной болью. Запуск слияния может быть большой помощью.

Chris O
25 янв. 2012, в 14:52

Поделиться

Я столкнулся с той же проблемой, в моем случае у меня было два 32-битных ПК. Один с установленным .NET4.5, а другой был свежим ПК.

Мой 32-битный cpp dll (Release mode build) работал нормально с установленным ПК .NET, но не со свежим ПК, где я получил следующую ошибку

Невозможно загрузить DLL «PrinterSettings.dll»: указанный модуль не найден. (Исключение из HRESULT: 0x8007007E)

в конце концов,

Я только что построил свой проект в конфигурации режима отладки, и на этот раз мой cpp dll работал нормально.

Abu Muhammad
25 янв. 2018, в 09:47

Поделиться

Настройка: 32-разрядная версия Windows 7

Контекст: установлен драйвер PCI-GPIB, с которым я не смог связаться из-за вышеупомянутой проблемы.

Короткий ответ: переустановите драйвер.

Длительный ответ:
Я также использовал Dependency Walker, в котором было указано несколько отсутствующих модулей зависимостей. Сразу же я подумал, что это была неудачная установка драйвера. Я не хотел проверять и восстанавливать каждый отсутствующий файл.

Тот факт, что я не смог найти деинсталлятор в разделе «Программы и функции панели управления», является еще одним показателем плохой установки. Мне пришлось вручную удалить пару *.dll в system32 и ключи реестра, чтобы разрешить повторную установку драйвера.

Исправлена ​​проблема.

Неожиданная часть заключалась в том, что не все модули зависимостей были разрешены. Тем не менее, теперь можно указать *.dll интерес.

icernos
20 окт. 2016, в 17:53

Поделиться

Также столкнулся с той же проблемой при использовании неуправляемого файла dll c/c++ в среде С#.

1.Проверил совместимость dll с 32-битным или 64-битным процессором.

2.Проверены правильные пути к папке DLL.bin, system32/sysWOW64 или указанному пути.

3.Проверено, отсутствуют ли файлы PDB (база данных программ). Это видео дает вам лучшее представление о файлах pdb.

При запуске 32-битного двоичного кода C/c++ в 64-битной системе это может произойти из-за несовместимости платформы. Вы можете изменить его из Build> Configuration manager.

Yuresh Karunanayake
17 янв. 2019, в 05:19

Поделиться

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

Таким образом, в вашем окне может быть установлено несколько версий распространяемой библиотеки, но только одно из них должно удовлетворять вашему приложению, и это может быть не по умолчанию, поэтому вам нужно сообщить системе, что вам нужна ваша библиотека, поэтому манифест.

Eugenio Miró
27 май 2015, в 16:09

Поделиться

Ещё вопросы

  • 0Странная проблема со смещенной вершиной в jquery
  • 0Как выровнять навигационную панель по нижней части окна без зазора между кнопками и краем окна
  • 1Как я могу подключить свой класс ListAdapter для работы во фрагменте с настроенным классом «Модель» для строк?
  • 0Заполнить выпадающий из базы данных PHP
  • 0Несколько селекторов классов / идентификаторов и классов с активным состоянием в IE и Opera
  • 1Должны ли похожие тестовые случаи jUnit находиться в одном тесте?
  • 0Нужна помощь в пересмотре сценария автоматической проверки
  • 1Как найти направление движения мыши?
  • 0Создание пользовательского интерфейса AngularJS для базы данных MYSQL. Попытка добавить столбец, который отображает итог из другой таблицы
  • 0UI-маршрутизатор динамически определяет «следующее» состояние во время выполнения
  • 1Определение тестовых классов в проекте
  • 0когда запускается SDL_MOUSEBUTTONUP?
  • 1Возникли проблемы с проверкой, если пользователь уже вошел в систему со своей учетной записью Facebook
  • 0Можно ли изменить значение ng-модели из события другого элемента — angularjs
  • 1Где в конечном итоге происходит создание клика в Enterprise Architect?
  • 1FLAG_ACTIVITY_NEW_TASK не открывает предыдущее действие, а только при новой установке apk
  • 0jQuery, функция вызывается без параметров, но есть параметры
  • 1удалить элементы из файла XML в Java
  • 1Bing Maps v8 — вызов события нажатия на PushPin
  • 0SQL — вставка новой строки зависит от предыдущих данных из той же таблицы
  • 0Коллекции форм ZF2 Zend Form FormElementManager :: get не удалось получить или создать экземпляр для
  • 0показать загруженное изображение, прежде чем нажать на кнопку отправить
  • 1Вывести toString () из отдельных классов
  • 0Ionic Framework не показывает Google Maps
  • 0Как мне преобразовать ответ $ http.post в $ resource в angularjs?
  • 0Как сохранить идентификатор выбранного выпадающего значения в SQLAlchemy
  • 0Слишком много символов в символьном литерале при преобразовании тега HTML в ссылку на сущность
  • 1Импорт телефонных номеров с облачным питоном Google Python
  • 0Система входа в систему: проблемы с запуском сессии
  • 0Переписать URL в AngularJS Factory
  • 1Отладка исходного кода сгенерированного кода в IntelliJ
  • 0Как добавить сервисную ссылку в библиотеку C #?
  • 0Как я могу загрузить файлы CoffeeScript из пакетов Bower с помощью веб-пакета?
  • 1Java помощь относительно циклов
  • 1Windows Phone — любой шаблон дизайна формы?
  • 0C ++: при возврате адреса переменной члена класса компилятор заставляет его иметь тип const *
  • 1Получить базу данных Fire в реальном времени, используя условие where
  • 1Сервис автоматического выхода из системы в приложении wpf
  • 1EditText — Cap слов без предложений?
  • 0Синтаксическая ошибка MySQLi / PHP
  • 1Поток данных Apache Beam / GCP: чтение видео / файлов изображений
  • 0Использование среза Javascript внутри углового выражения
  • 0Скрытое поле не появляется в PHP-скрипте
  • 0Чтение строк с 2 числами в C ++
  • 1Привязка элемента в дочернем представлении к свойству родительского ViewModel
  • 0Почему мой jQuery не меняет цвет фона моего div с изменением анимации?
  • 0отредактируйте htaccess, чтобы сделать его нечувствительным к регистру
  • 0Замена строки на переменную python в SQL-запросе
  • 1получить доступ к банку в проекте из импортированной библиотеки — gradle / android studio
  • 0Как angular узнает, что $ httpBackend заменяет $ http в тестах angularjs?

Сообщество Overcoder

Ошибка 0x8007007e в основном появляется тогда, когда происходит апдейт Windows 10. Иногда ошибка данная ошибка может происходить в результате изменений, переустановки различных программ и сервисов, касающихся конкретно операционной системы.

Ошибка 0x8007007e в Windows 10: 3 лучших способа решения

В случаях, когда выбивается такая проблема, на экран выскакивает сообщение, в котором указывается, что операционная система автоматически нашла какую-то ошибку либо неточность, либо распаковка файла, билда по различным причинам прервалась.

Что же может быть причиной появления на экране сообщения подобного рода. Среди всех возможных причин выделяют две главные:

  1. По каким-либо причинам был поврежден один из файлов Виндовс либо отчет памяти реестра, именно вследствие этого может происходить несоответствие файлов друг с другом или с устанавливаемым файлом, который, по каким-либо причинам, не может подходить установленной ОС, так как предназначен совсем для других характеристик.
  2. Дополнительное, вспомогательное программное обеспечение, которое очень часто может вызывать ошибки, сбои во время работы устройства либо загрузки. Очень часто виной всему выступают антивирусные программы, автоматически останавливающие сам процесс загрузки файла, делается это все в целях безопасности и надежности. Для того, чтобы выйти из сложившейся ситуации вопрос может решаться несколькими способами. Рассмотрим наиболее актуальные из всех возможных.

Способы устранения ошибки 0x8007007e

  1. Одним из самых простых способов устранения ошибки является простое отключение установленной антивирусной программы либо других приложений, вызывающих подвис либо неправильную загрузку файлов. После отключения программы следует удостовериться в том, что метод действительно оказался действенным. Это будет сразу заметно по работе самой ОС. Для того, чтобы отключить расширение необходимо кликнуть на соответствующую иконку, открыть меню опции и найти кнопку Выйти. После чего рекомендуется начать заново обновление системы или установку желаемой программы, сервиса. Если результата никакого не последовало, следует, что причина крылась не в этом и пробовать проверять второй способ.
  2. Необходимо самому вернуть настройки Центра обновлений к дефолтному виду. В тот момент, когда антивирус, установленный в гаджет не источник возникновения ошибки 0x8007007e, то необходимо возвратиться в начальному виду и попробовать установить, переключить различные настройки Центра обновления. Высока вероятность того, что, используя другие настройки, получиться исправить сложившуюся ситуацию. Для реализации данного способа необходима кликнуть WIN-X и найти раздел Командная строка, после чего включить опцию net stop wuauserv, установить параметр net stop cryptSvc, самостоятельно в командной строке ввести комбинацию net stop bits и нажать Ввод. При этом следует обозначить тип настройки net stop msiserver, после чего опять нажать клавишу Ввод. Записывается опция с раздела ren C:WindowsSoftwareDistribution SoftwareDistribution.old, указывается параметр ren C:WindowsSystem32catroot2 Catroot2.old, набирается net start wuauserv и все эти действия подтверждаются простым нажатием на клавишу Enter. Не забудьте выключить консоль. После всех выполненных мероприятий, указанных выше, стоит опять выполнить апдейт операционной системы либо расшифровать какую-либо модификацию. Если применение и данного метода не помогло справиться с насущной проблемой, то самое время испробовать заключительный метод.
  3. Данный способ можно обозначить, как чистая загрузка. Применять его следует только в тех случаях, когда вышеуказанные способы не привели ни к какому результату. Данный способ загрузки всей информации в автоматическом режиме запускает саму операционную систему со всеми ее основными и ключевыми составляющими, грубо говоря, все дополнительные и вспомогательные программы, которые хоть как-то могут повлиять на загрузку либо модификацию, отключаются, в процессе участвуют только самые нужные сервисы.

Для того, чтобы перейти к данному процессу необходимо нажать комбинацию WIN-R, в выскочившем окне вводится команда msconfig, после чего действие подтверждается.

Далее необходимо найти раздел Службы, галочкой отметить пункт Скрыть службы Майкрософт, после чего нажать Отключить все. Теперь можно смело переходить к установке, так как все ненужные и дополнительные программы отключаются.

Далее нужно перейти в Диспетчер задач, найти раздел Автозагрузка и закрыть работу всех приложений, которые там указаны, после чего компьютер перезагружается. После включения ПК следует снова попробовать обновить версию операционной системы. Если получилось справиться с проблемой, значит, что причина ее появления-вспомогательная утилита.

На чтение 2 мин. Просмотров 3.3k. Опубликовано 03.09.2019

Ошибка 0x8007007e обычно возникает при попытке загрузить обновления Windows. Это может быть большой проблемой и сделать вашу систему уязвимой и устаревшей, поэтому сегодня мы собираемся показать вам, как это исправить раз и навсегда.

Как исправить ошибку 0x8007007e в Windows 10? Эта ошибка обычно возникает, если возникают какие-либо проблемы со службами Центра обновления Windows. Чтобы это исправить, вам нужно запустить командную строку и перезапустить эти службы. Если это не работает, попробуйте отключить все службы запуска и приложения или временно отключить антивирусную защиту.

Содержание

  1. Как исправить ошибку 0x8007007e Windows Update?
  2. 1. Перезапустите компоненты Центра обновления Windows.
  3. 2. Выполните Чистую загрузку
  4. 3. Отключить сторонний антивирус

Как исправить ошибку 0x8007007e Windows Update?

  1. Перезапустите компоненты Центра обновления Windows .
  2. Выполнить чистую загрузку
  3. Отключить сторонний антивирус

1. Перезапустите компоненты Центра обновления Windows.

Чтобы исправить ошибку обновления Windows 0x8007007e, необходимо перезапустить криптографическую систему, программу установки NMSI, службы BITS, службы обновления Windows и некоторые другие необходимые службы. Вы можете сделать это, выполнив следующие действия:

  1. Сначала нажмите клавишу Windows и удерживайте клавишу X . Нажмите Командная строка (Администратор) .
  2. Выполните следующие команды одну за другой:

    • net stop wuauserv
    • net stop cryptSvc
    • чистые стоповые биты
    • net stop msiserve
    •   C:  Windows  SoftwareDistribution SoftwareDistribution.ol  
    •   C:  Windows  System32  catroot2 Catroot2.old  
    • net start wuauserv
    • net start cryptSvc
    • чистые стартовые биты
    • net start msiserver
  3. Наконец, закройте командную строку.

2. Выполните Чистую загрузку

Если это решение вам не помогло, попробуйте выполнить чистую загрузку. Выполнение чистой загрузки поможет вам определить, вызвана ли проблема сторонней службой или программным обеспечением.

  1. Сначала нажмите клавишу Windows и клавишу R .
  2. Теперь введите msconfig и нажмите Enter .
  3. Затем перейдите на вкладку “Услуги” .
  4. Установите флажок Скрыть все службы Microsoft и нажмите Отключить все .
  5. Теперь перейдите на вкладку “Автозагрузка” и нажмите Открыть диспетчер задач .
  6. Отключить все задачи в диспетчере задач.

Перезагрузите компьютер и проверьте, сохраняется ли проблема.

3. Отключить сторонний антивирус

В некоторых случаях ошибка 0x8007007e вызвана вашим антивирусом, поэтому для устранения этой проблемы может потребоваться временно отключить ее. Если отключение антивируса не помогает, возможно, вам придется удалить антивирус, а затем переустановить его.

Если проблема связана с вашим антивирусом, вы можете рассмотреть возможность перехода на другое антивирусное решение. Bitdefender предлагает отличную защиту, и он никак не повлияет на вашу систему, поэтому обязательно попробуйте.

Вот вам три простых решения. Обязательно попробуйте все эти решения и сообщите нам, помогли ли они вам исправить ошибку обновления Windows 0x8007007e.

Возможно, вам также будет интересно:

  • Ошибка 0x8007007b при активации windows 10 как исправить ошибку
  • Ошибка 0x8007007b обновление windows 10
  • Ошибка 0x80070079 при копировании на внешний диск
  • Ошибка 0x80070079 превышен таймаут семафора что делать
  • Ошибка 0x80070070 недостаточно места на диске

  • Понравилась статья? Поделить с друзьями:
    0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии