随笔分类 -  C++

有关C++中的常见问题
摘要:引用该篇文章: https://www.cnblogs.com/augustine0654/p/17156412.html 实际复现时发现了一些问题,故记录下: 1. 使用 gcc 编译 exe 时,mian.c 文件位置是在 calculate 里 命令: gcc ./src/calculate/ 阅读全文
posted @ 2025-02-08 15:17 strive-sun 阅读(33) 评论(0) 推荐(0) 编辑
摘要:又一年过去了,加上十二月份也没写一篇技术分享,故就用一个年终小结来结束这一年吧 翻了下工作的聊天记录 上半年: 1. 主要是维护和开发当前的项目,以及解决各种疑难杂症,学习了不少知识,虽然现在也忘记了差不多,还好一些重要的都记录到博客了 2. 我负责的项目优先级不高,所以迭代周期比较慢,今年才更新了 阅读全文
posted @ 2024-12-31 18:40 strive-sun 阅读(7) 评论(0) 推荐(0) 编辑
摘要:继前一篇:使用 cmake.js 在 Windows 上编译 js 代码 我们已经能在 vscode 上成功的编译出 js 代码,那我们该如何断点调试 js 代码以及 js 引用的 C 库源码呢 首先要先以 Debug 模式编译 js 代码 cmake-js clean cmake-js compi 阅读全文
posted @ 2024-11-21 16:08 strive-sun 阅读(337) 评论(0) 推荐(0) 编辑
摘要:https://zhuanlan.zhihu.com/p/194198073 (防链接失效) 程序使用并发的原因有两种: 为了关注点分离(程序中不同的功能,使用不同的线程去执行),当为了分离关注点而使用多线程时,设计线程的数量的依据,不再是依赖于 CPU 中的可用内核的数量,而是依据概念上的设计(依 阅读全文
posted @ 2024-09-20 19:06 strive-sun 阅读(33) 评论(0) 推荐(0) 编辑
摘要:wolfssl github: https://github.com/wolfSSL/wolfssl 编译 .lib 或者 .dll wolfssl 很好的提供了 win32 的工程=》sln 文件 这样就不用折腾 CMakeLists 文件了,使用 Visual Studio 打开 sln 文件后 阅读全文
posted @ 2024-08-20 17:54 strive-sun 阅读(149) 评论(0) 推荐(0) 编辑
摘要:阅读多线程实战第六章第二节时,看到 mutable 关键词的使用,突然忘记它的含义 => https://github.com/xiaoweiChen/CPP-Concurrency-In-Action-2ed-2019/blob/master/content/chapter6/6.2-chines 阅读全文
posted @ 2024-05-23 15:30 strive-sun 阅读(7) 评论(0) 推荐(0) 编辑
摘要:在我建议 sentry-native 社区添加 content: gzip 功能,并提交了一个 PR 帮助他们完成后,终于在 v0.7.2 中添加了该功能 https://github.com/getsentry/sentry-native/releases/tag/0.7.2 不过实际中使用与旧版 阅读全文
posted @ 2024-05-22 19:30 strive-sun 阅读(89) 评论(0) 推荐(0) 编辑
摘要:继上文说到使用 IDA 和 WinDbg 调试无 dmp 文件 那么在有源码的情况下可以直接断点调试 DLL,目的是查看 DLL 内部的函数调用 场景: 程序执行到某个 DLL 时突然崩溃,先确定 Debug 生成的 DLL 在程序中运行是否也会有闪退 如果有,则适用于 VS 断点调试 操作步骤: 阅读全文
posted @ 2024-02-19 12:11 strive-sun 阅读(545) 评论(0) 推荐(0) 编辑
摘要:Detours 是一个用于在 ARM, ARM64, X86, X64 和 IA64 机器上拦截二进制函数的库。 Detours 最常用来拦截应用程序中的 win32 api 调用,比如添加调试工具。 拦截代码在运行时动态应用。 Detours 将目标函数的前几个指令替换为无条件跳转到用户提供的 d 阅读全文
posted @ 2024-02-19 11:15 strive-sun 阅读(543) 评论(0) 推荐(0) 编辑
摘要:1. dependency walker 用于查看 dll 之间的依赖关系 2. EXE Explorer 查看 exe 或者 dll 的 PE 信息 可以查看时间戳,看编译时间是否正确 3. hash.exe 查看文件的 md5 是否一致 可以用来检查文件是否完整 4. clumsy 0.2 cl 阅读全文
posted @ 2023-12-25 12:02 strive-sun 阅读(76) 评论(0) 推荐(0) 编辑
摘要:最近项目里要重新编写程序加载器,也就是编译出一个可执行文件,在 Windows 上是 .exe 为什么要程序加载器? 个人理解是,可执行文件大小最好是越小越好,功能都可以由 dll 文件执行 而程序加载器里最重要的是两个 win32 函数,分别是 LoadLibrary 和 GetProcAddre 阅读全文
posted @ 2023-12-14 11:45 strive-sun 阅读(42) 评论(0) 推荐(0) 编辑
摘要:Dll 在需要暴露接口的头文件里添加 dllexport 声明,比如, #define DllExport __declspec( dllexport ) class DllExport C { int i; virtual int func( void ) { return 1; } }; 注意, 阅读全文
posted @ 2023-11-08 16:14 strive-sun 阅读(110) 评论(0) 推荐(0) 编辑
摘要:最近项目上要使用 CMakeLists 管理,由于 Windows 版本有依赖到 vcpkg 提供的库,所以需要使用 vcpkg manifest 来统一设置库的版本,方便后续维护 推荐一个文章,介绍的可以说是非常全面了 VCPKG 特性 - Versioning 不过里面也有一些过时的特性,我在后 阅读全文
posted @ 2023-10-13 19:38 strive-sun 阅读(758) 评论(0) 推荐(2) 编辑
摘要:真复杂啊 安装 ffmpeg 库有两种途径,一种是自己下载源码再去编译,另一种是使用 vcpkg 自动安装 一般情况下,第二种是最简单方便的,但是如果你需要使用 ffmpeg 的特定历史版本,那就有点困难了 下面记录下我遇到的坑, 借助这篇文章,我打算使用 vcpkg 切换到 ffmpeg 的历史提 阅读全文
posted @ 2023-09-19 15:46 strive-sun 阅读(1559) 评论(0) 推荐(1) 编辑
摘要:在 Winodws 上编译通常会用到这两种工具链 MinGW(Minimalist GNU for Windows) 通常用于跨平台开发,可以编译出在 Windows 系统上运行的 .exe 程序 MSVC(Microsoft Visual C++) 是专属于 Windows 软件开发,不能跨平台 阅读全文
posted @ 2023-09-15 14:53 strive-sun 阅读(1921) 评论(2) 推荐(0) 编辑
摘要:MSYS2 是一个在 Windows上 运行的软件环境,它提供了一种在 Windows 上使用 GNU 工具链的方式,包括 GCC 编译器和 GNU Make 构建系统。 在 MSYS2 中,你可以使用静态库(.a 文件)来编译和链接 Windows 版本的软件,但是需要确保一些事项: 正确的工具链 阅读全文
posted @ 2023-09-14 14:56 strive-sun 阅读(444) 评论(0) 推荐(0) 编辑