动态链接库初始化例程失败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就被修复了。
另外可升级你的杀毒软件,在安全模式下对你的系统作一次全面的扫描!!!
RackNerd 商家给的感觉就是一直蹭节日热点,然后时不时通过修改配置结构不断的提供低价年付的VPS主机,不过他们家还是在做事的,这么两年多的发展,居然已经有新增至十几个数据中心,而且产品线发展也是比较丰富。比如也有独立服务器业务,不过在他们轮番的低价年付VPS主机活动下,他们的服务器估摸着销路不是太好的。这里,今天有看到RackNerd商家的独立服务器业务有促销。这次提供美国多个机房的高配独立...
极光KVM创立于2018年,主要经营美国洛杉矶CN2机房、CeRaNetworks机房、中国香港CeraNetworks机房、香港CMI机房等产品。其中,洛杉矶提供CN2 GIA、CN2 GT以及常规BGP直连线路接入。从名字也可以看到,VPS产品全部是基于KVM架构的。极光KVM也有明确的更换IP政策,下单时选择“IP保险计划”多支付10块钱,可以在服务周期内免费更换一次IP,当然也可以不选择,...
LOCVPS发来了新的洛杉矶CN2线路主机上线通知,基于KVM架构,目前可与香港云地、香港邦联机房XEN架构主机一起适用7折优惠码,优惠后最低美国洛杉矶CN2线路KVM架构2GB内存套餐月付38.5元起。LOCPVS是一家成立较早的国人VPS服务商,目前提供洛杉矶MC、洛杉矶C3、和香港邦联、香港沙田电信、香港大埔、日本东京、日本大阪、新加坡、德国和荷兰等机房VPS主机,基于KVM或者XEN架构。...
动态链接库初始化例程失败为你推荐
ISDNISDN是什么网络?firstname中国人填资料时,first name是名还是姓?开票系统防伪税控开票系统怎么安装?策略组组策略是什么?最开放的浏览器用的最多的三个浏览器是?最开放的浏览器目前最好的游览器?rdlDVD±RW/±RDL/RAM 具体什么意思tvosTVOS系统是什么?备忘录模式为什么我的华为手机界面总是有个框框在备忘录上面ruby语言Ruby是一种什么样的语言,主要用来做什么,现在有一家公司让我从java转ruby,我很犹豫?
海外域名 域名出售 域名主机空间 美国加州vps winscp singlehop asp.net主机 视频存储服务器 便宜建站 bash漏洞 搜狗抢票助手 国外网站代理服务器 三拼域名 个人空间申请 大容量存储器 hktv 个人免费主页 上海电信测速 工信部网站备案查询 apnic 更多