一些问题二:libcurl静态链接相关问题
概述 从vcpkg安装了libcurl的静态库,把该静态库拷贝到了项目同级目录,并在项目中引用了这个libcurl.lib 问题 现象 编译出test.exe的时候发现,同时会多出两个文件 libcurl.dll zlib1.dll 分析 在项目同级目录放进去的是静态库,也在项目...
概述 从vcpkg安装了libcurl的静态库,把该静态库拷贝到了项目同级目录,并在项目中引用了这个libcurl.lib 问题 现象 编译出test.exe的时候发现,同时会多出两个文件 libcurl.dll zlib1.dll 分析 在项目同级目录放进去的是静态库,也在项目...
启动流程 BasicEntry 作为dll导出接口 PrepareEnv 先构建运行时 ntdll.dll kernel32.dll 获取当前dll句柄 EXE被当做DLL加载时,首先修复重定位数据,此时的全局变量等还无法访问 因为Windows操作系统不会修复当做DLL加载的E...
自动加载 在编译时指定DLL,当程序启动运行的时候,会首先加载相关DLL 手动加载 在编译时不指定DLL,在运行的时候通过调用LoadLibrary()来加载DLL 相应的,在使用完毕,要使用FreeLibrary()来释放DLL 手动加载关注点 对于DLL 函数声明的地方加上e...
相关 特性 静态库 (.lib) 动态库 (.dll) 编译时 代码直接嵌入可执行文件 代码独立,运行时加载 文件大小 可执行文件较大 可执行文件较小 部署难度 无需额外文件 需要附带 .dll 文件 更新维护 需重新编译整个项目 只需替换 .dll 文件 工程 项目环境 打开 ...
概述 HOOK技术(钩子技术)是Windows操作系统中的一种核心机制,允许程序拦截并处理系统事件、消息或函数调用 通过HOOK,开发者可以监控或修改系统的行为,例如键盘输入、鼠标点击、窗口创建/销毁等 HOOK技术广泛应用于安全防护、自动化工具、调试分析等领域 原理 消息机制与...
某程序替换图片资源,发现还是显示旧的 简述 替换了程序的一些背景图片,安装图片 编译后发现还是显示旧资源的内容 清理visual studio项目缓存,重新编译还是显示旧资源内容 分析 资源替换成功了,重新编译了,还显示旧内容,那说明跑起来的程序内部的资源本身就是旧的内容 也就是...
加载 双击.exe的时候,该.exe被加载到内存当中,形成一个进程 在这个过程中,DLL也会被加载到内存中 DLL被加载后处于被占用的状态,不能对它进行修改删除等操作 DLL被卸载后,可以对它进行操作 对于占用同一个DLL的不同进程,不可比较DLL中变量的地址,因为DLL数据段每...
相关 dll 包含所有的代码编译成的指令 lib 包含一个列表,表明dll含有哪些符号,每个符号对应在dll里的位置 工程 使用VS新建项目 选择Win32控制台应用程序 应用程序类型:DLL 附加选项:空项目 创建工程 环境 添加cpp文件 右键工程属性,选择C/C++ 选定代...
概述 DllMain 是 Windows 动态链接库(DLL)的入口函数,类似于可执行程序的 main 函数 它在以下四种情况下会被系统自动调用: DLL 被加载到进程内存 DLL 被卸载 进程创建新线程 线程退出 参数 保留参数 lpReserved: DLL_PROCESS_...
ATL线程模型和套间 概述 在 COM 开发中,线程模式(Threading Model) 和 套间(Apartment) 是确保组件在多线程环境下安全运行的核心机制 ATL(Active Template Library)通过模板类(如 CComObjectRootEx)和线程...
搜索当前标签