windowsapi函数:Windows API一日一练(82)LoadLibrary函数



  随着软件Software规模扩大要求功能也是越来越多开发人员参和也是越来越多因此软件Software功能划分就成为了现代软件Software工程重大任务还有软件Software开发并行性也越来越重要为了解决这些问题大家都会看到IT硬件发展非常迅速功能也越来越复杂但硬件中发展明显提高在于采用IC方式来实现复杂功能也就是把大部份功能集成到只要给出些引脚就可以实现产品了而软件Software中有没有相同于硬件中IC呢?我想是应有就是动态连接库了在Windows这座大厦里很多基石就是动态连接库构成个动态连接库就封装了特别复杂功能使用者不必关心它是如何样实现当然这样也可以让区别开发者同时开发产品提高软件Software开发速度要使用动态连接库里就需要使用LoadLibrary来加载动态连接库使用GetProcAddress来获取功能地址

  LoadLibrary声明如下:

WINBASEAPI
__out
HMODULE
WINAPI
LoadLibraryA(
    __in LPCSTR lpLibFileName
    );
WINBASEAPI
__out
HMODULE
WINAPI
LoadLibraryW(
    __in LPCWSTR lpLibFileName
    );
#def UNICODE
# LoadLibrary LoadLibraryW
#
# LoadLibrary LoadLibraryA
#end // !UNICODE


  lpLibFileName是动态连接库名称

  例子如下:

#001 //加载动态连接库
#002  //蔡军生 2007/12/03 qq:9073204 深圳
#003  void TestLoadDLL(void)
#004  {
#005         //加载动态连接库
#006        HMODULE hDllLib = LoadLibrary(_T("Kernel32.dll"));
#007          (hDllLib)
#008         {
#009               //获取动态连接库里地址
#010               FARPROC fpFun = GetProcAddress(hDllLib,"GetVersion");
#011              
#012               //运行
#013               DWORD dwVersion = (*fpFun);
#014              
#015               //获取WINDOWS版本
#016               DWORD dwWindowsMajorVersion = (DWORD)(LOBYTE(LOWORD(dwVersion)));
#017               DWORD dwWindowsMinorVersion = (DWORD)(HIBYTE(LOWORD(dwVersion)));
#018              
#019               //显示
#020               const  nBufSize = 512;
#021               TCHAR chBuf[nBufSize];
#022               ZeroMemory(chBuf,nBufSize);
#023 
#024               wsprf(chBuf,_T("显示版本:%d,%d\r\n"),
#025                    dwWindowsMajorVersion,dwWindowsMinorVersion);
#026               OutputDebugString(chBuf);
#027 
#028               //释放动态连接库
#029               FreeLibrary(hDllLib);
#030         }
#031        
#032  }


Tags:  api函数查询工具 api函数大全 api函数 windowsapi函数

延伸阅读

最新评论

发表评论