随笔分类 -  编程技巧

摘要:最近在开发项目中遇到一个很奇怪的问题:在源文件没有任何修改的情况下,每次使用visual studio(2020预览版)启动程序调试前,项目都会被重新编译一遍。这一度让我怀疑是最新版本预览版IDE的隐藏的问题,但是仔细思考又不太可能,于是基于一个没有出现这个问题的commit创建新的测试分支,对比验 阅读全文
posted @ 2021-08-22 20:35 blackstar666 阅读(953) 评论(0) 推荐(0)
摘要:在socks5代理浅识中对代理请求认证等协议分别定义相关的结构体类型,在向代理服务发送请求协议的部分中,通过sizeof获取结构体大小来指定要发送的数据字节数,这恰恰隐藏了一个严总的问题,尤其是同学们对C++数据对齐不甚了解的前提下。 一、你想的结构体大小不是你想的"结构体大小" 下面是代码中定义的 阅读全文
posted @ 2021-07-05 01:01 blackstar666 阅读(882) 评论(0) 推荐(0)
摘要:在学习C++泛型编程或者接触过STL源码的同学,一定对模板声明和实现放置在一起编写印象非常深刻。相交于C++非泛型编程,我们习惯上将函数的声明和实现分开存放,一来是代码更加“干净”,二来即使提供给三方使用也不会泄漏源码实现。那C++模板声明和实现能够分离吗? 一、C++模板声明和实现不分离 下面是N 阅读全文
posted @ 2021-06-20 23:01 blackstar666 阅读(2318) 评论(0) 推荐(0)
摘要:RAII(资源获取即初始化)机制给我们的编程带来了极大的帮助,C++标准库中的std::lock_guard就使用到了该机制。它的作用是:guard对象在构造的时候将资源初始化好,在guard对象析构的时候将资源自动释放掉;完美的解决了过去C++程序员需要手动或异常情况下管理资源释放的问题。那么"s 阅读全文
posted @ 2021-06-16 22:50 blackstar666 阅读(1010) 评论(0) 推荐(0)
摘要:一、前言 Microsoft Windows中存在大量获取系统属性的API,其中参数很多都是结构体类型,比如获取系统内存信息API: 1 void main() 2 { 3 MEMORYSTATUSEX memInfo{}; 4 memInfo.dwLength = sizeof(memInfo); 阅读全文
posted @ 2021-03-13 19:29 blackstar666 阅读(761) 评论(0) 推荐(0)