loadlibrary失败怎么解决
loadlibrary失败的解决方法?
1.文件路径不对
(图片来源网络,侵删)2.dll里有全局变量出事化失败或dllmain函数返回false。
我们这个程序里用的是绝对路径,原因1是不成立的。分析dll的代码,发现原因2也是不成立的。
追踪到这里就没思路解决问题了,后来发现加载dll可以用loadlibrary,loadlibraryex,afxloadlibrary。试了下其他两个函数,loadlibraryex现象一样,afxloadlibrary会抛异常。查了资料,afxloadlibrary是用来加载mfc扩展dll的,不同的一点是在加载dll前会处理线程同步。好像初始化也没有线程同步的问题啊。不理解。
(图片来源网络,侵删)再仔细看代码,发现dllmain所在的类文件里有 #include <afxdllx.h> , 不理解这个头文件有什么作用,屏蔽后编译没影响,将dll放在必现的场景下测试,不再出现加载失败的问题。
电脑开机出现错误提示:Failedtoloadkernellibrary是为什么?
运行登录器就出现 Failed to load kernel library 这个提示! 貌似是支持库不能加载![无需重装系统] 系统运行有些EXE程序 有时会出现“failed to load kernel library”这种情况,原因是你的杀毒软件误杀了"krnln.fnr"和"shell.fne"这两个文件。
出现此问题的原因可能是因为用户对系统中"C:\Documents and Settings\Administrator\Local Settings\Temp\E_4"目录没有可写权限造成的,因为此目录是E语言程序运行时临时存放支持库文件"krnln.fnr"和"shell.fne"的。
(图片来源网络,侵删)解决办法 请把附件下载下来,解压后再放到下面所对应的目录即可! 把此文件解压后放在下面这个目录里 C:\Documents and Settings\Administrator\Local Settings\Temp\E_
4 如果 Temp文件夹下有“E_4”这个文件,请选择“工具”→“文件夹选项”→“查看”→然后把里面的[隐藏受保护的操作系统(推荐)]前面的那一项去掉。
显示“E_4”此文件后,删除“E_4”,再新建一个文件夹 命名为“E_4”,再把下载好的3个文件放入“E_4”目录下,即可解决有些EXE执行文件时出现“failed to load kernel library”的错误提示。
要是你没用到那软件的话,建议你在开机启动项里面把这关掉就可以了 。开机不会自动运行,以后就不会出现了 开始----运行----msconfig--启动 找到这选项,关掉
到此,以上就是小编对于loadlibrary 失败的问题就介绍到这了,希望这2点解答对大家有用。