VS2019 EXE程序如何链接(使用)DLL动态库中的资源控件如DialogBox

网友投稿 1245 2022-09-16

VS2019 EXE程序如何链接(使用)DLL动态库中的资源控件如DialogBox

VS2019 EXE程序如何链接(使用)DLL动态库中的资源控件如DialogBox

上一节讲到如何使用lib静态库中的资源,这里顺便再提一下动态库中的资源。动态库相对于静态库就要容易多了,静态库实际上相当于EXE自身的一部分,在编译完生成的文件中要完全融入EXE,而动态库有自己的结构,在最后生成可执行文件后,还是作为一个独立的个体存在。所以,静态库的资源ID号与EXE中的ID资源号是不能重复的,否则会出问题;而动态库中的资源ID号则可以完全不用顾忌EXE中的ID号。DLL中的资源控件用使用起来几乎和EXE的完全一致,唯一不同的是,你必须使用DLL库的HMODULE;这个HMODULE和EXE中的HINSTANCE其实是同一个等级的东西,例如,在DLL中调用DialogBox你必须这样,HMODULE g_module = NULL;BOOL APIENTRY DllMain( HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved ){ switch (ul_reason_for_call) { case DLL_PROCESS_ATTACH: g_module = hModule; break; case DLL_THREAD_ATTACH: break; case DLL_THREAD_DETACH: break; case DLL_PROCESS_DETACH: break; break; } return TRUE;}这里,我们设置了一个全局变量g_module ,把这个动态库的HMODULE保存下来,然后,在动态库的程序中就可以这样使用了,DialogBox(g_module, MAKEINTRESOURCE(IDD_DIALOG_OPERATION), NULL, SpaceVisionProc);如果进一步,你需要在EXE的源码中调用DLL中的资源,那么,同样的道理,你必须使用DLL的handle。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:Python基础知识:序列之集合(Python有序集合)
下一篇:windows开机启动python脚本、django项目、vue项目
相关文章

 发表评论

暂时没有评论,来抢沙发吧~