动态链接库初始化例程失败QQ空间进不去动态链接库(DLL)初始化例程失败。
动态链接库初始化例程失败 时间:2021-07-11 阅读:(
)
win7 RunDLL 动态链接库初始化例程失败
看一下,这个动态链是否在?
看好了那个dll扩展名的动态链名称,然后使用工具重新下载覆盖之。
方法看教程。
?
方法一:
1、在同系统中找到此文件,黏贴到:C:WindowsSystem32文件夹底下
2、打开CMD窗口输入如下命令注册一下所有的动态链:
for %1 in (%windir%system32*.dll) do regsvr32.exe /s %1 回车执行
?
for %1 in (%windir%system32*.ocx) do regsvr32.exe /s %1 回车执行
?
两条分别运行完成后重启机器。
方法二:使用工具,保持联网,输入动态链名称,自动更新替换。
百度系列经验:《动态链修复工具DllFiles》/article/bceb64792064cab197f5.html
我的电脑老是跳去动态链接库(DLL)初始化例程失败。请问是什么原因?
这个文件是nVidia系列显卡驱动的文件。
有可能它们已经被病毒感染或已丢失,建议先查毒试试。
顺便检查一下显卡驱动的安装文件(如已损坏可以到驱动之家去下载)
在确认系统干净无毒的情况下,卸载显卡-->重启-->安装驱动-->重启,应该可以解决问题。
另外,装完驱动后,启动项目中关于nVidia驱动的项目其实都可以屏蔽不让它随电脑启动,一般不会有什么影响动态链接库(DLL)初始化程序失败,该怎么办?
第一步,我先从简单的调用出发,定义了一个简单的函数,该函数仅仅实现一个整数加法求和:
LIBEXPORT_API int mySum(int a,int b){ return a+b;}
C# 导入定义:
public class RefComm
{
[DllImport("LibEncrypt.dll",
EntryPoint=" mySum ",
CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
public static extern int mySum (int a,int b);
}
在C#中调用测试:
int iSum = RefComm.mySum(,);
运行查看结果iSum为5,调用正确。
第一步试验完成,说明在C#中能够调用自定义的动态链接库函数。
第二步,我定义了字符串操作的函数(简单起见,还是采用前面的函数名),返回结果为字符串:
LIBEXPORT_API char *mySum(char *a,char *b){sprintf(b,"%s",a); return a;}
C# 导入定义:
public class RefComm
{
[DllImport("LibEncrypt.dll",
EntryPoint=" mySum ",
CharSet=CharSet.Auto,
CallingConvention=CallingConvention.StdCall)]
public static extern string mySum (string a, string b);
}
在C#中调用测试:
string strDest="";
string strTmp= RefComm.mySum("45", strDest);
运行查看结果 strTmp 为"45",但是strDest为空。
我修改动态链接库实现,返回结果为串b:
LIBEXPORT_API char *mySum(char *a,char *b){sprintf(b,"%s",a) return b;}
修改 C# 导入定义,将串b修改为ref方式:
public class RefComm
{
[DllImport("LibEncrypt.dll",
EntryPoint=" mySum ",
CharSet=CharSet.Auto,CallingConvention=CallingConvention.StdCall)]
public static extern string mySum (string a, ref string b);
}
在C#中再调用测试:
string strDest="";
string strTmp= RefComm.mySum("45", ref strDest);
运行查看结果 strTmp 和 strDest 均不对,含不可见字符。
再修改 C# 导入定义,将CharSet从Auto修改为Ansi:
public class RefComm
{
[DllImport("LibEncrypt.dll",
EntryPoint=" mySum ",
CharSet=CharSet.Ansi,CallingConvention=CallingConvention.StdCall)]
public static extern string mySum (string a, string b);
}
在C#中再调用测试:
string strDest="";
string strTmp= RefComm. mySum("45", ref strDest);
运行查看结果 strTmp 为"45",但是串 strDest 没有赋值。
第二步实现函数返回串,但是在函数出口参数中没能进行输出。
再次修改 C# 导入定义,将串b修改为引用(ref):
public class RefComm
{
[DllImport("LibEncrypt.dll",
EntryPoint=" mySum ",
CharSet=CharSet.Ansi,CallingConvention=CallingConvention.StdCall)]
public static extern string mySum (string a, ref string b);
}
运行时调用失败,不能继续执行。
第三步,修改动态链接库实现,将b修改为双重指针:
LIBEXPORT_API char *mySum(char *a,char **b){sprintf((*b),"%s",a); return *b;}
C#导入定义:
public class RefComm
{
[DllImport("LibEncrypt.dll",
EntryPoint=" mySum ",
CharSet=CharSet.Ansi,CallingConvention=CallingConvention.StdCall)]
public static extern string mySum (string a, ref string b);
}
在C#中调用测试:
string strDest="";
string strTmp= RefComm. mySum("45", ref strDest);
运行查看结果 strTmp 和 strDest 均为"45",调用正确。
第三步实现了函数出口参数正确输出结果。
第四步,修改动态链接库实现,实现整数参数的输出:
LIBEXPORT_API int mySum(int a,int b,int *c){ *c=a+b; return *c;}
C#导入的定义:
public class RefComm
{
[DllImport("LibEncrypt.dll",
EntryPoint=" mySum ",
CharSet=CharSet.Ansi,CallingConvention=CallingConvention.StdCall)]
public static extern int mySum (int a, int b,ref int c);
}
在C#中调用测试:
int c=0;
int iSum= RefComm. mySum(,, ref c);
运行查看结果iSum 和c均为5,调用正确。
经过以上几个步骤的试验,基本掌握了如何定义动态库函数以及如何在 C# 定义导入,有此基础,很快我实现了变长加密函数在 C# 中的调用,至此目标实现。
三、结论
在 C# 中调用 C++ 编写的动态链接库函数,如果需要出口参数输出,则需要使用指针,对于字符串,则需要使用双重指针,对于 C# 的导入定义,则需要使用引用(ref)定义。
对于函数返回值,C# 导入定义和 C++ 动态库函数声明定义需要保持一致,否则会出现函数调用失败。
定义导入时,一定注意 CharSet 和 CallingConvention 参数,否则导致调用失败或结果异常。
运行时,动态链接库放在 C# 程序的目录下即可,我这里是一个 C# 的动态链接库,两个动态链接库就在同一个目录下运行。
动态链接库(DLL)初始化例程失败是怎么回事
是由于envapt.dll出现了问题知,
解决道方法:在这个目录下c:documents and settingsadministratorapplication datamicrosoft sharedofficesh找到版envapt.dll、envaptup.dll这两个文件并删权除之QQ空间进不去动态链接库(DLL)初始化例程失败。
依次选择“开始→运行”,在“运行”对话框中输入“regsvr32 actxprxy.dll”命令,单击“确定”按钮,这时会弹出一个信息对话框,提示“actxprxy.dll中的DllRegisterServer成功”,单击“确定”按钮,然后再在“运行”对话框中输入“regsvr32 shdocvw.dll”命令,单击“确定”按钮,重新启动计算机后IE就被修复了。
另外可升级你的杀毒软件,在安全模式下对你的系统作一次全面的扫描!!!
优林怎么样?优林好不好?优林 是一家国人VPS主机商,成立于2016年,主营国内外服务器产品。云服务器基于hyper-v和kvm虚拟架构,国内速度还不错。今天优林给我们带来促销的是国内西南地区高防云服务器!全部是独享带宽!续费同价!官方网站:https://www.idc857.com地区CPU内存硬盘流量带宽防御价格购买地址德阳高防4核4g50G无限流量10M100G70元/月点击购买德阳高防...
趣米云怎么样?趣米云是创建于2021年的国人IDC商家,虽然刚刚成立,但站长早期为3家IDC提供技术服务,已从业2年之久,目前主要从事出售香港vps、香港独立服务器、香港站群服务器等,目前在售VPS线路有三网CN2、CN2 GIA,该公司旗下产品均采用KVM虚拟化架构。由于内存资源大部分已售,而IP大量闲置,因此我们本月新增1c1g优惠套餐。点击进入:趣米云官方网站地址香港三网CN2云服务器机型活...
racknerd怎么样?racknerd美国便宜vps又开启促销模式了,机房优秀,有洛杉矶DC-02、纽约、芝加哥机房可选,最低配置4TB月流量套餐16.55美元/年,此外商家之前推出的最便宜的9.49美元/年套餐也补货上架,同时RackNerd美国AMD VPS套餐最低才14.18美元/年,是全网最便宜的AMD VPS套餐!RackNerd主要经营美国圣何塞、洛杉矶、达拉斯、芝加哥、亚特兰大、新...
动态链接库初始化例程失败为你推荐
strcatstrcat函数的使用联想网盘联想网盘收费吗,怎么样g2gB2E和G2E分别是什么意思weakhashmapjava中几种Map在什么情况下使用,并简单介绍原因及原理showwindowShowWindow和EnableWindow区别调度系统1.说明高级调度、中级调度和低级调度的基本含义。ruby语言ruby什么意思?什么含义?弹幕网站谁能给我解释一下什么叫A站,什么叫B站?都是啥网站?清除电脑垃圾怎么清除电脑的垃圾啊?新手怎么制作表格如何学会制作表格?
网站域名 河南虚拟主机 未注册域名查询 深圳域名空间 网页空间租用 ion godaddy优惠码 标准机柜尺寸 jsp空间 工作站服务器 qq云端 国外视频网站有哪些 七夕快乐英语 1元域名 视频服务器是什么 阿里云官方网站 数据库空间 lamp的音标 腾讯网盘 带宽测试 更多