What does ERROR_DLL_INIT_FAILED mean?

浪子不回头ぞ 提交于 2019-12-02 03:39:32

问题


I'm seeing the following exception in my managed (C#) app calling an unmanaged assembly:

Caught:System.IO.FileLoadException 'A dynamic link library (DLL) initialization routine failed. (Exception from HRESULT: 0x8007045A)'

What does this HRESULT mean, and where should I start in diagnosing this?


回答1:


alternatively the DLL you try to load is trying to load a missing DLL, check with DEPENDS.EXE on the DLL.




回答2:


FileLoadException Class

Represents the error that occurs when a Assembly file is found but cannot be loaded.

The FileNotFoundException exception is thrown when the file fails to load because it cannot be located. If the file is located, but cannot be loaded due to insufficient permissions, a SecurityException is thrown.

FileLoadException has the default HRESULT of COR_E_FILELOAD, which has the value 0x80131621, but this is not the only possible HRESULT.

If your code does not have PathDiscovery permission, the error message for this exception may only contain file or directory names instead of fully qualified paths.

Quoted straight from MSDN:
link text

This is usually simply an issue of being able to find the required library.




回答3:


I was getting this error after upgrading a solution that was in VS 2008 and had projects targeting .NET framework v2.0 to VS 2010 with target runtime v 4.0. The exception I was getting was:

Could not load file or assembly 'XYZ.dll' or one of its dependencies. A dynamic link library (DLL) initialization routine failed. (Exception from HRESULT: 0x8007045A)":"XYZ.dll

This was fixed by adding the following section to the App.config file of the project set as startup:

<startup useLegacyV2RuntimeActivationPolicy="true">
   <supportedRuntime version="v2.0"/>
   <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/>
</startup>


来源:https://stackoverflow.com/questions/1747985/what-does-error-dll-init-failed-mean

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!