Determine the current HINSTANCE?

前端 未结 4 1498
自闭症患者
自闭症患者 2021-01-31 14:07

The HINSTANCE of a win32 application is passed to WinMain, but is there any other way of determining the current HINSTANCE (in case you couldn\'t tell, I\'m very new to win32 pr

相关标签:
4条回答
  • 2021-01-31 14:17

    The function AfxGetStaticModuleState() does the trick. If you call it within a dll, the functions returns the handle to the dll, if the call within a exe it returns the handle to the executable.

    DWORD size;
    TCHAR fileName [MAX_PATH];
    HMODULE hModule = AfxGetStaticModuleState()->m_hCurrentInstanceHandle;
    ::GetModuleFileName (hModule, fileName, size);
    
    0 讨论(0)
  • 2021-01-31 14:29

    If you are using MFC, you can use AfxGetInstanceHandle.

    If you are not using MFC you can use: GetWindowLong(hWnd, GWL_HINSTANCE)

    0 讨论(0)
  • 2021-01-31 14:34

    If memory serves, GetModuleHandle(NULL); returns the instance handle.

    0 讨论(0)
  • 2021-01-31 14:34

    __ImageBase is your friend, especially in the case of libraries.

    Note that the linked blog post (by R. Chen, although not the same post as the one linked by Brian Bondy) is worth reading (including the comments!)

    0 讨论(0)
提交回复
热议问题