动态链接库初始化例程失败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就被修复了。
另外可升级你的杀毒软件,在安全模式下对你的系统作一次全面的扫描!!!
UCloud优刻得商家这几年应该已经被我们不少的个人站长用户认知,且确实在当下阿里云、腾讯云服务商不断的只促销服务于新用户活动,给我们很多老用户折扣的空间不多。于是,我们可以通过拓展选择其他同类服务商享受新人的福利,这里其中之一就选择UCloud商家。UCloud服务商2020年创业板上市的,实际上很早就有认识到,那时候价格高的离谱,谁让他们只服务有钱的企业用户呢。这里希望融入到我们大众消费者,你...
提速啦(www.tisula.com)是赣州王成璟网络科技有限公司旗下云服务器品牌,目前拥有在籍员工40人左右,社保在籍员工30人+,是正规的国内拥有IDC ICP ISP CDN 云牌照资质商家,2018-2021年连续4年获得CTG机房顶级金牌代理商荣誉 2021年赣州市于都县创业大赛三等奖,2020年于都电子商务示范企业,2021年于都县电子商务融合推广大使。资源优势介绍:Ceranetwo...
ucloud:全球大促活动降价了!这次云服务器全网最低价,也算是让利用户了,UCloud商家调低了之前的促销活动价格,并且新增了1核1G内存配置快杰型云服务器,价格是47元/年(也可选2元首月),这是全网同配置最便宜的云服务器了!UCloud全球大促活动促销机型有快杰型云服务器和通用型云服务器,促销机房国内海外都有,覆盖全球20个城市,具体有北京、上海、广州、香港、 台北、日本东京、越南胡志明市、...
动态链接库初始化例程失败为你推荐
元宝网元宝网里面的一个币是真的投资赚钱吗电子日历怎样调整电子日历上的时间vipjr大家觉得vipjr少儿英语怎么样?靠谱不色库photoshop7.0怎么改PANTONE色号layoutsubviews如何设置plus.nativeui.toast的样式暴力破解密码用什么方法才能破解别人密码手机建设银行网址建设银行个人网上银行使用手机浏览器访问没有登录入口。中科红旗中科红旗Linux 5.0桌面操作系统与Window系统是否有相近之处?中科红旗北京中科红旗软件技术有限公司的介绍pps网络电视pps网络电视在线观看?
长春域名注册 花生壳域名贝锐 火山主机 raksmart 表格样式 主机屋免费空间 主机合租 本网站服务器在美国 200g硬盘 流量计费 常州联通宽带 卡巴斯基官网下载 umax linuxvi linux命令vi 赵荣博客 国外bt网站 关闭空间申请 正在登陆游戏服务器 华为4核手机 更多