确定当前的HINSTANCE?

win32应用程序的HINSTANCE传递给WinMain,但有没有其他方法可以确定当前的HINSTANCE(如果你不知道,我是win32编程的新手!)?我需要在库中创建一个窗口(因为库是跨平台的),id不想传递它。     
已邀请:
如果内存服务,
GetModuleHandle(NULL);
返回实例句柄。     
__ImageBase是你的朋友,特别是在图书馆的情况下。 请注意,链接的博客帖子(由R. Chen提供,但与Brian Bondy关联的帖子不同)值得一读(包括评论!)     
如果您使用的是MFC,则可以使用AfxGetInstanceHandle。 如果您不使用MFC,可以使用:GetWindowLong(hWnd,GWL_HINSTANCE)     
函数AfxGetStaticModuleState()可以解决这个问题。 如果你在一个dll中调用它,函数会返回dll的句柄,如果exe中的调用它返回可执行文件的句柄。
DWORD size;
TCHAR fileName [MAX_PATH];
HMODULE hModule = AfxGetStaticModuleState()->m_hCurrentInstanceHandle;
::GetModuleFileName (hModule, fileName, size);
    

要回复问题请先登录注册