程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> 實用C++函數:取當前模塊句柄

實用C++函數:取當前模塊句柄

編輯:C++入門知識

當前模塊的句柄在程序進入點可以獲得,一般做法是保存為一個全局變量,以後使用這個全局變量即可。但有時在寫一些比較通用的代碼時剛好要用到模塊句柄,如果還去訪問這個全局變量就破壞了代碼的通用性。

下面函數可以取得當前模塊的句柄,無須保存,隨調隨得:

/*
 通過一個地址取模塊句柄
*/
inline HMODULE ModuleHandleByAddr(const void* ptrAddr)
{
 MEMORY_BASIC_INFORMATION info;
 ::VirtualQuery(ptrAddr, &info, sizeof(info));
 return (HMODULE)info.AllocationBase;
}
/*
 當前模塊句柄
*/
inline HMODULE ThisModuleHandle()
{
 static HMODULE sInstance = ModuleHandleByAddr((void*)&ThisModuleHandle);
 return sInstance;
}

 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved