阅读 75

setwindowlong函数,concurrentmodification

返回到句柄: GetModuleHandle () )使用GetModuleHandle函数格式。

hmodulegetmodulehandle (lpctstrlpmodulename;

参数lpModuleName :

用指针指向作为[in].dll或. exe文件的模块名称以空字符结尾的字符串。 如果省略了文件扩展名,请增加缺省扩展名. dll。 文件名可以包含省略号(…),表示模块名称没有扩展名。 此字符串不需要指定路径。 指定路径时,请使用反斜杠(/)而不是斜杠(/) )。 此模块名称将独立于当前映射到调用进程地址空间的模块名称进行比较。 如果此参数为NULL,则函数返回创建调用进程(.exe文件)的文件的句柄。  

 

返回值:

如果函数调用成功,返回值将是模块的句柄。 如果函数调用失败,则返回空值。 要了解更多错误消息,请调用GetLastError。  

 

注释:

返回句柄不是全局的或可继承的。 不能在其他进程中复制或使用。 如果lpModuleName不包含路径,并且具有多个相同的文件名和扩展名,则无法预测返回的句柄是哪个模块。 要解决此问题,必须指定路径。 使用side-by-side assemblies或GetModuleHandleEx指定内存区域,而不是DLL名称。 GetModuleHandle函数将句柄返回到图像的模块,而不增加引用的数量。 但是,在将此句柄传递给FreeLibrary函数时要小心。 因为这样传递会导致DLL模块无法提前映像。 在多线程程序中必须慎重使用这个函数。 无法保证此模块句柄在函数返回和使用时有效。 例如,假设一个线程获取了模块句柄,但在使用该句柄之前,第二个线程释放了模块。 如果此系统加载到另一个模块中,则可以再次使用最近释放的句柄。 但是,第一个线程具有与以前的模块不同的模块句柄。

If this parameter is NULL,getmodulehandlereturnsahandletothefileusedtocreatethecallingprocess, exefile。

如果参数为空,则检索的是调用此DLL的exe的句柄或application句柄,而不是DLL的句柄

要获取当前DLL的句柄,必须传递DLL的名称。

afxgetinstancehandle (* * anhinstancetothecurrentinstanceoftheapplication.ifcalledfromwinadllinkedwitheusrdlversion

返回的是APP的句柄,但如果此函数是从MFC的USRDLL版本DLL内部调用的,则返回的是此DLL的句柄**

cwin app-m _ hinstance them _ hinstancedatamemberisahandletothecurrentinstanceoftheapplicationruningunderwindows.thisisisisssred handle.m _ hinstanceisapublicvariableoftypehinstance。

这与AfxGetInstanceHandle () )的返回值相同,因为它由AfxGetInstanceHandle ()返回。

参考https://www.bbsmax.com/A/x9J21nnMz6/

作为GetModuleFileName函数原型的dwordgetmodulefilename (hmodule hmodule,LPTSTR lpFilename,DWORD nSize );函数参数说明:

hModule HMODULE加载程序实例的句柄。 如果参数为NULL,则函数返回当前APP应用程序的完整路径。

lpFileName LPTSTR是指向存储返回名称的内存块的指针,它是一个输出参数

nSize DWORD,要加载到缓冲区中的lpFileName的最大值

函数返回值:

如果恢复正常,将返回与lpFileName缓冲区相对应的模块的路径。 如果nSize太小,哪些返回值只返回缓冲区大小对应的字符串内容?

如果函数失败,返回值为0,返回GetLastError异常代码。

所需的头文件是include Windows.h

参考http://blog.sina.com.cn/s/blog_4b7c6cc00100t7j2.html


文章分类
代码人生
版权声明:本站是系统测试站点,无实际运营。本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 XXXXXXo@163.com 举报,一经查实,本站将立刻删除。
相关推荐