动态链接库初始化例程失败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就被修复了。
另外可升级你的杀毒软件,在安全模式下对你的系统作一次全面的扫描!!!
御云怎么样?炎炎暑期即将来临,御云(royalyun)香港、美国服务器开启大特惠模式。御云是新成立的云服务提供商,主要提供香港、美国的云服务器,不久将开启虚拟主机业务。我们的香港和美国主机采用CN2 GIA线路。目前,香港cn2 gia vps仅7.9元每月起,美国vps仅8.9/月,续费同价,可叠加优惠,香港云服务器国内延迟一般在50ms左右,是搭建网站的最佳选择,但是请不要用于违法用途。点击进...
Hostodo近日发布了美国独立日优惠促销活动,主要推送了四款特价优惠便宜的VPS云服务器产品,基于KVM虚拟架构,NVMe阵列,1Gbps带宽,默认分配一个IPv4+/64 IPv6,采用solusvm管理,赠送收费版DirectAdmin授权,服务有效期内均有效,大致约为7折优惠,独立日活动时间不定,活动机型售罄为止,有需要的朋友可以尝试一下。Hostodo怎么样?Hostodo服务器好不好?...
A400互联怎么样?A400互联是一家成立于2020年的商家,A400互联是云服务器网(yuntue.com)首次发布的云主机商家。本次A400互联给大家带来的是,全新上线的香港节点,cmi+cn2线路,全场香港产品7折优惠,优惠码0711,A400互联,只为给你提供更快,更稳,更实惠的套餐,香港节点上线cn2+cmi线路云服务器,37.8元/季/1H/1G/10M/300G,云上日子,你我共享。...
动态链接库初始化例程失败为你推荐
rdlDVD±RW/±RDL/RAM 具体什么意思slideshare佳能复印MG3620怎么使用?tvos智能电视都什么功能被广电封杀了?tvosairpods什么意思 airpods连接方式是怎样的jdk6jdk-6u14-windows-i586.exe是什么,具体点,谢谢spawningvc出现error spawning c1.exe怎么解决?layoutsubviews如何让NSSplitView的子View的大小固定图片存储手机照片的保存方法?12306注册铁路12306怎么注册用户名中科红旗中科红旗Linux 5.0桌面操作系统与Window系统是否有相近之处?
工信部域名备案查询 lnmp 59.99美元 免费smtp服务器 有益网络 七夕快乐英文 稳定免费空间 drupal安装 域名dns 独立主机 中国联通宽带测速 空间服务器 云服务是什么意思 海外加速 服务器操作系统 华为云服务器宕机 装修瓦工招聘 隐士ddos 企业私有云存储 美国主机购买 更多