您好、欢迎来到现金彩票网!
当前位置:手机棋牌游戏平台 > 系统目录 >

win7系统 如何给程序指定所需dll文件的目录

发布时间:2019-07-25 09:13 来源:未知 编辑:admin

  百度知道电脑/网络操作系统/系统故障Windows

  我有个应用程序,需要调用某些专用的dll文件,如果不把dll放在system文件夹里,也不想放到程序目录下,而是放到其他目录下,如何让应用程序找到他们?通过环境变量?...

  我有个应用程序,需要调用某些专用的dll文件,如果不把dll放在system文件夹里,也不想放到程序目录下,而是放到其他目录下,如何让应用程序找到他们? 通过环境变量?

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  1、在Windows系统中安装软件运行时,一般都是从软件的安装目录中调用所需的模块(.dll)文件,如没有所需模块(.dll)文件,再到 WindowsSystem 32 文件夹中调用。如果 WindowsSystem 32 文件夹中也没有模块(.dll)文件,就会出现提示丢失SetupXML.dll文件的错误信息。

  2、一般来说,只要软件能与 Windows 7系统兼容,这些模块(.dll)文件都可以在 系统文件夹中找到。我们从系统文件夹中把指定的模块文件复制出来,粘贴到WindowsSystem 32 文件夹就可以了。

  9、在打开的system 32文件夹窗口,右键点击空白处 - 粘贴,退出;

  11、在做好了上述准备工作以后,现在就可以顺利地安装VideoStudio Pro X6软件了。

  12、如果系统文件中没有SetupXML.dll文件,可以在网上下载后,再按照上述方法把SetupXML.dll文件复制到system 32文件夹中,也可以把SetupXML.dll文件再复制到VideoStudio Pro X6软件中。

  展开全部1、如何了解某应用程序使用哪些DLL文件 右键单击该应用程序并选择快捷菜单中的“快速查看”命令,在随后出现的“快速查看”窗口的“引入表”一栏中你将看到其使用DLL文件的情况。 2、如何知道DLL文件被几个程序使用 运行Regedit,进入HKEY_LOCAL_MACHINESoftwareMicrosrftWindowsCurrentVersionSharedDlls子键查看,其右边窗口中就显示了所有DLL文件及其相关数据,其中数据右边小括号内的数字就说明了被几个程序使用,(2)表示被两个程序使用,(0)则表示无程序使用,可以将其删除。 3、如何解决DLL文件丢失的情况 有时在卸载文件时会提醒你删除某个DLL文件可能会影响其他应用程序的运行。所以当你卸载软件时,就有可能误删共享的DLL文件。一旦出现了丢失DLL文件的情况,如果你能确定其名称,可以在Sysbckup(系统备份文件夹)中找到该DLL文件,将其复制到System文件夹中。如果这样不行,在电脑启动时又总是出现“***dll文件丢失……”的提示框,你可以在“开始/运行”中运行Msconfig,进入系统配置实用程序对话框以后,单击选择“”标签,找出提示丢失的DLL文件,使其不被选中,这样开机时就不会出现错误提示了。 rundll的功能是以命令列的方式呼叫Windows的动态链结库。 Rundll32.exe与Rundll.exe的区别就在于前者是用于32位的链结库,后者是用于16位的链结库。rundll32.exe是专门用来调用dll文件的程序。 如果用的是Win98,rundll32.exe一般存在于Windows目录下; 如果用的WinXP,rundll32.exe一般存在于WindowsSystem32目录下。 若是在其它目录,就可能是一个木马程序,它会伪装成rundll32.exe。

  当您在应用程序中加载 DLL 时,可以使用两种链接方法来调用导出的 DLL 函数。这两种链接方法是加载时动态链接和运行时动态链接。 1、加载时动态链接 在加载时动态链接中,应用程序像调用本地函数一样对导出的 DLL 函数进行显式调用。要使用加载时动态链接,请在编译和链接应用程序时提供头文件 (.h) 和导入库文件 (.lib)。当您这样做时,链接器将向系统提供加载 DLL 所需的信息,并在加载时解析导出的 DLL 函数的位置。 2、运行时动态链接 在运行时动态链接中,应用程序调用 LoadLibrary 函数或 LoadLibraryEx 函数以在运行时加载 DLL。成功加载 DLL 后,可以使用 GetProcAddress 函数获得要调用的导出的 DLL 函数的地址。在使用运行时动态链接时,无需使用导入库文件。 Win32 DLL的特点 Win32 DLL与 Win16 DLL有很大的区别,这主要是由操作系统的设计思想决定的。一方面,在Win16 DLL中程序入口点函数和出口点函数(LibMain和WEP)是分别实现的;而在Win32 DLL中却由同一函数DLLMain来实现。无论何时,当一个进程或线程载入和卸载DLL时,都要调用该函数,它的原型是 BOOL WINAPI DllMain(HINSTANCE hinstDLL,DWORD fdwReason, LPVOID lpvReserved); 其中,第一个参数表示DLL的实例句柄;第三个参数系统保留;这里主要介绍一下第二个参数,它有四个可能的值:DLL_PROCESS_ATTACH(进程载入),DLL_THREAD_ATTACH(线程载入),DLL_THREAD_DETACH(线程卸载),DLL_PROCESS_DETACH(进程卸载),在DLLMain函数中可以对传递进来的这个参数的值进行判别,并根据不同的参数值对DLL进行必要的初始化或清理工作。举个例子来说,当有一个进程载入一个DLL时,系统分派给DLL的第二个参数为DLL_PROCESS_ATTACH,这时,你可以根据这个参数初始化特定的数据。另一方面,在Win16环境下,所有应用程序都在同一地址空间;而在Win32环境下,所有应用程序都有自己的私有空间,每个进程的空间都是相互独立的,这减少了应用程序间的相互影响,但同时也增加了编程的难度。大家知道,在Win16环境中,DLL的全局数据对每个载入它的进程来说都是相同的;而在Win32环境中,情况却发生了变化,当进程在载入DLL时,系统自动把DLL地址映射到该进程的私有空间,而且也复制该DLL的全局数据的一份拷贝到该进程空间,也就是说每个进程所拥有的相同的DLL的全局数据其值却并不一定是相同的。因此,在Win32环境下要想在多个进程中共享数据,就必须进行必要的设置。亦即把这些需要共享的数据分离出来,放置在一个独立的数据段里,并把该段的属性设置为共享。

http://naukritech.com/xitongmulu/491.html
锟斤拷锟斤拷锟斤拷QQ微锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷锟斤拷微锟斤拷
关于我们|联系我们|版权声明|网站地图|
Copyright © 2002-2019 现金彩票 版权所有