当前位置: 代码迷 >> C# >> C# xp运行正常,win7 win8出现无法加载DLL,动态链接库初始化例程失败,该如何解决
  详细解决方案

C# xp运行正常,win7 win8出现无法加载DLL,动态链接库初始化例程失败,该如何解决

热度:480   发布时间:2016-05-05 05:10:39.0
C# xp运行正常,win7 win8出现无法加载DLL,动态链接库初始化例程失败
用的是C# 2012,  操作系统64位windows8.1,启动调试时能出程序界面,但当我点击一个按钮,里面有调用dll的代码,结果弹出一个框:vshost.exe已停止工作
我直接找到debug目录下的.exe文件,程序能正常打开,点击这个按钮出现提示 无法加载DLL  “*****.dll" : 动态链接库(DLL)初始化例程失败。(异常来自HRESULT:0x8007045A).
用xp系统就可以正常打开,但是用win7 win8系统都会出现这个问题
这是什么原因啊?有谁遇到过类似问题,帮忙解决一下,感激不尽!!
------解决思路----------------------
之前做过一个sqlite.dll(分32位和64位版,两个dll都放在目录中),还有com都试过,在win7/8上都没有问题
还是从你引用的dll与你的代码入手找问题吧,看一下dll的说明
------解决思路----------------------
引用:
Quote: 引用:

如果dll是32位的,win7是64位的(win8都是64位的),你需要将目标平台设置为x86,在项目右键属性里设置
有些dll可能需要注册


目标平台是x86的 要是因为dll没有注册的话 xp系统下应该也会出现问题吧

XP下dll不需要注册,WIN7和WIN8下某些dll需要注册.
------解决思路----------------------
还有参考4楼的说法,看你是否参数传递了int类型
int在32位系统中是32bit,在64位系统中占64bit(8byte)
------解决思路----------------------
遇到过,调用一个第3方的DLL,无解。

但后来提供一个同样功能的 OCX ,能正常使用。
  相关解决方案