非独立编译的程序会从哪些目录找支持库

非独立编译的程序会从哪些目录找支持库,第1张

独立EXE(首次启动速度比独立EXE快)搜索支持库文件的顺序及位置:

第一步:首先搜索当前目录下的krnln.fnr 但决不搜索krnln.fne

文件,并根据程序运行中调用相应功能支持库的需要依次在加载的核心支持库krnln.fnr同目录中寻找相应的支持库文件,未找到则会出错。核心支持库是最先被加载的,它始终引导程序在同级目录中寻找其它支持库文件。未找到则进入第二步。

第二步:查找 我的电脑\HKEY_CURRENT_USER_\Software\FlySky\E\Install

主键中的字符串Path的值,它指向易语言安装目录lib,例如: "c:\program

files\e\lib\" 根据这里的路径首先搜索核心支持库文件krnln.fne 但决不搜索krnln.fnr 未找到则进入第三步。

--------------------------------------------------------------------------

Software\FlySky\E\Install >>>>>只存在于非独立EXE中,指向注册表中我的电脑\HKEY_CURRENT_USER\可以用编辑器对非独立编译后的(因为e.exe有自检验,不能修改)易程序修改这个指向,使易程序在安装有易语言的用户电脑中只搜索当前目录中的支持库,避免混乱。

-------------------------------------------------------------------------------

Path >>>>>>>这个键值数据指示注册表中当前用户易语言的安装位置,如:F:\PROGRAM

FILES\E38\lib--------------------------------------------------

REGEDIT4

[HKEY_CURRENT_USER\Software\FlySky\E\Install]

"Path"="F:\\PROGRAM

FILES\\E38\\lib\\"

--------------------------------------------------

第三步:显示错误信息:Error

Not found the kernel library or the kernel library is

invalid!

备注:2.55以下版本,首先搜索注册表以定位易语言的安装目录lib中的支持库文件,未找到则搜索当前目录,如果还未找到则搜索%system%目录,而3.0以上不会去搜索%system%目录。

独立编译的EXE会释放支持库文件(不论当前目录下是否有支持库)到 *** 作系统环境设置的临时目录中,如果支持库文件(krnln.fnr等)已存在则直接引用,不会覆盖它(此时注意多个独立编译的易程序同时运行会产生的有关问题):如:\Temp\E_80003\krnln.fnr(不会释放带编辑信息的支持库krnln.fne)。根本不会访问注册表中易语言键值,故完全不受注册表中支持库指向的影响。

如果有2个以上的易独立编译程序同时启动,释放支持库到临时目录下,因此同时启动有一个读支持库时会出错,如果不在同一时间启动则没问题

--------------------------------------------------------------

使用了易语言编译的DLL的易程序独立编译时不管是否把这个DLL打包进EXE中,运行时这个DLL寻找易支持库的位置是EXE所在目录和注册表中的易语言安装路径目录,不会寻找释放到临时目录E_80003中的支持库。所以凡使用了易语言编写的DLL的易程序最好使用非独立编译,把DLL和所需支持库放在EXE运行目录中即可!否则可能会出现错误:Not

found the kernel library or the kernel library is invalid or the kernel library

of this edition does not support DLL!

易语言编译的DLL是从注册表中指向的易语言的安装目录lib中或者调用这个DLL的EXE所在目录中载入核心支持库(即使在EXE是独立编译的情况下,但DLL不会载入这个独立编译的EXE释放到临时目录E_80003中的支持库!)

你的开机启动项里加载一个易语言做的程序,这个程序在编译的时候没有把

*** 作系统界面功能支持库1.0版

这个支持库加到程序里,如果这个程序是你做的,你重新编译一下就可以了,要不是你做的就在开机启动项里找到这个程序结束掉就可以,这个和你电脑的系统没任何关系的,也不是你的电脑的问题

!

还有种可能是木马的残骸造成的,解决办法如下:

方法一:

用工具软件清除启动选项,清除一些不必要的启动项,重新启动即可;

方法二:

按下F3.搜索shell.*在C盘中.勾上高级选项.勾上搜索系统,隐藏和子文件夹.然后搜索.在结果中保留三个系统必要的,C:\WINDOWS\\inf\shell.inf

C:\WINDOWS\system\SHELL.DLL

C:\WINDOWS\system32\shell.dll

其它的删除.就可以了.都不用重启.

vba编程语言所使用的一系列函数、对象和方法的集合。

VBA支持库是指VisualBasicforApplications(VBA)编程语言所使用的一系列函数、对象和方法的集合。VBA支持库包含大量的预定义函数和对象,方便VBA程序员在编写代码时调用这些函数和对象,以实现特定的功能。

VBA(VisualBasicforApplications)是VisualBasic的一种宏语言,是在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/11450502.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-16
下一篇 2023-05-16

发表评论

登录后才能评论

评论列表(0条)

保存