C# 调用第三方dll失败问题

您所在的位置:网站首页 无法加载库dbdatadll C# 调用第三方dll失败问题

C# 调用第三方dll失败问题

2024-06-11 15:06| 来源: 网络整理| 查看: 265

转载:https://bbs.csdn.net/topics/392272183?page=1

以下内容摘自原作者,我的一个dll也出现初始化失败的问题,用第7步,以管理员身份运行,发现没有问题。在此感谢原作者,也做个记录。

目前问题已经解决,我说说我所做的工作,方便以后遇到类似问题的朋友解决。 开始的时候,发现调用不了WOSA的msxfs.dll动态库。提示信息: System.DllNotFoundException   HResult=-2146233052   Message=无法加载 DLL“msxfs.dll”: 动态链接库(DLL)初始化例程失败。 (异常来自 HRESULT:0x8007045A) 我做过的尝试有

1.检查在当前工程的运行目录下是否“msxfs.dll”这个库,发现有。其次检查了system32下也有这个库。 2.检查当前工程的目标框架是否是“msxfs.dll”支持的net4.0和x86环境。检查是否安装了XFSManager。发现都是正确的。 3.检查系统环境变量路径里面是否包含了这个动态库。发现也有。 4.查询网上的资料,发现有的动态库有其依赖运行库,怎么查看依赖运行库?用depends工具查看即可,发现缺少很多库,但是同样在其他人那里可以运行用depends查看依然缺少很多库。那么说明这些库不是产生问题的原因。 5.猜想可能是这个库本身有问题,自己动手用VS2010写了一个C++的动态库,新建一个C#的WPF工程来调用刚刚写的动态库,发现可以调用,认为开发环境没有问题(其实这个猜想不合理,因为在别人机器上可以跑起来,说明库里的函数是可以正常调用的。) 6.用虚拟机装了一个win7 64位的系统,再安装VS2010及其补丁包SP1,发现还是不行 7.最后返回来直接运行工程的.exe程序,发现运行不了,于是用管理员权限运行,发现程序居然没有问题,可以调用设备,说明那个函数库也能被调用,到此就说明了肯定是编译环境有问题,于是尝试用管理员权限运行VS2010,运行居然不在报错:找不到“msxfs.dll”。 猜测原因可能是,管理员有对某些保护数据访问权限,而这些数据和需要查找的动态库有关,所以以后尽量还是以管理员权限来运行程序,省去很多麻烦。



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3