搜索
首页 电脑/网络 软件 系统软件

怎样调用DLL?

怎样调用DLL?

全部回答

2018-03-29

46 0
       加载DLL时,Windows寻找相应DLL的次序如下:   当前工作盘。   Windows目录;GetWindowsDirectory( )函数可提供该目录的路径名。
     Windows系统目录,即System子目录;调用GetSystemDiretory( )函数可获得这个目录的路径名。     DOS的PATH命令中罗列的所有目录。
     网络中映象的目录列表中的全部目录。   DLL模块中输出函数的调用方法:   不论使用何种语言对编译好的DLL进行调用时,基本上都有两种调用方式,即静态调用方式和动态调用方式。静态调用方式由编译系统完成对DLL的加载和应用程序结束时DLL卸载的编码(如还有其它程序使用该DLL,则Windows对DLL的应用记录减1,直到所有相关程序都结束对该DLL的使用时才释放它),简单实用,但不够灵活,只能满足一般要求。
    动态调用方式是由编程者用API函数加载和卸载DLL来达到调用DLL的目的,使用上较复杂,但能更加有效地使用内存,是编制大型应用程序时的重要方式。具体来说,可用如下的方法调用:   在应用程序模块定义文件中,用IMPORTS语句列出所要调用DLL的函数名。
  如:   IMPORTS MEMORYDLL。  MemoryRead   MEMORYDLL。MemoryWrite   让应用程序运行时与DLL模块动态链接   先用LoadLibrary加载DLL,再用GetProcAddress函数检取其输出函数的地址,获得其指针来调用。
  如:   HANDLE hLibrary;   FARPROC lpFunc;   int PortValue;   M   hLibrary=LoadLibrary("PORTDLL。  DLL"); //加载DLL   if(hLibrary>31) //加载成功   {   lpFunc=GetProcAddress(hLibrary,"PortIn"); //检取PortIn函数地址   if(lpFunc!=(FARPROC)NULL) //检取成功则调用   PortValue=(*lpFunc)(port); //读port端口的值   FreeLibrary(hLibrary); //释放占用的内存   }   M 希望我的回答可以帮到你。
    。

类似问题换一批

热点推荐

热度TOP

相关推荐
加载中...

热点搜索 换一换

电脑/网络
系统软件
程序设计
电脑装机
操作系统/系统故障
硬件
笔记本电脑
百度
互联网
反病毒
软件
软件
系统软件
多媒体软件
办公软件
网络软件
图像处理软件
系统软件
系统软件
举报
举报原因(必选):
取消确定举报