递归火山软件开发平台

标题: dll是在什么时机引入的 [打印本页]

作者: lijiqidong    时间: 2024-4-28 11:24
标题: dll是在什么时机引入的
本帖最后由 lijiqidong 于 2024-4-28 11:33 编辑


如上图所示,信息框使用了MessageBox,方法位于User32.dll中
问题是:User32.dll是在哪里引入的?如果确定想使用的api之前有没有在全局引入过,求大佬给个思路。或者是引入了相关的头文件是在哪里引入的


作者: server    时间: 2024-4-28 11:44
hook            
作者: Xelloss0618    时间: 2024-4-28 12:45
1、火山不管你有没用到,都会默认加载 kernel32、user32、gdi32、advapi32、shell32、ole32、oleaut32、comctl32 等几个dll,加载时机是在程序完成启动之前。
2、如果dll是通过头文件加lib的方式引用,加载时机跟上面一样,缺少dll会直接无法启动程序,所以无法在启动时释放dll文件。
3、通过表格输入的dll命令,如果没有被上面两种加载过,加载时机是在程序启动之后,用户的启动方法之前,所以也无法让用户手动释放文件。
4、用户自己通过代码加载dll并执行dll命令,加载时机由用户控制,可以在加载前释放文件。
作者: lijiqidong    时间: 2024-4-28 17:54
Xelloss0618 发表于 2024-4-28 12:45
1、火山不管你有没用到,都会默认加载 kernel32、user32、gdi32、advapi32、shell32、ole32、oleaut32、com ...

RE:火山不管你有没用到,都会默认加载 kernel32、user32、gdi32、advapi32、shell32、ole32、oleaut32、comctl32 等几个dll,加载时机是在程序完成启动之前。

大佬,这部分怎么论证,或者在哪个文件里面可以看到
作者: Xelloss0618    时间: 2024-4-28 20:27
lijiqidong 发表于 2024-4-28 17:54
RE:火山不管你有没用到,都会默认加载 kernel32、user32、gdi32、advapi32、shell32、ole32、oleaut32、 ...

在视窗基本类的源码里加载的,封装手册也有提到。
作者: lijiqidong    时间: 2024-4-28 21:24
Xelloss0618 发表于 2024-4-28 20:27
在视窗基本类的源码里加载的,封装手册也有提到。

封装手册看到了,但是我把视窗基本类的每个头文件和源文件都找了,没有找到引入的过程【可能我的寻找方式有问题】。
我看了如下信息
头文件:
"libs\\win_base\\vol_base.h"
源文件:
libs\win_base\cpp\vol_assert.cpp
libs\win_base\cpp\vol_classes.cpp
libs\win_base\cpp\vol_functions.cpp
libs\win_base\cpp\vol_time.cpp
libs\win_base\cpp\vol_key.cpp
libs\win_base\cpp\vol_math.cpp
libs\win_base\cpp\vol_mem.cpp
libs\win_base\cpp\vol_mem_pool.cpp
libs\win_base\cpp\vol_muti_thread.cpp
libs\win_base\cpp\vol_stream.cpp
libs\win_base\cpp\vol_string.cpp
libs\win_base\cpp\vol_array.cpp
libs\win_base\cpp\vol_bitmap.cpp
libs\win_base\cpp\vol_com.cpp




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4