己所不欲,勿施于人。

2019-02-22
OpenSSL 学习笔记

OpenSSL 学习笔记

传输层安全

  • 安全通信
  • 避免窃听
  • 确认另一端连接者的身份
阅读此文

2019-02-18
硬盘分区原理

硬盘分区原理

记录硬盘分区相关知识:磁盘分区表。

阅读此文

2018-12-27
C/C++ 格式化字符串

格式化字符串有讲究

阅读此文

2018-12-25
DCMTK 编译与调试

DCMTK 编译与调试

CMake 生成 VS 解决方案使用绝对路径留下的痛

阅读此文

2018-12-25
DCMTK + Conquest DICOM Server 环境测试

更进一步

阅读此文

2018-12-13
静态变量的初始化与释放

前情提要:
VLD要记录每次的内存分配,它通过Windows提供的分配钩子allocation hooks来监视调试堆内存的分配。它是一个用户自定义的回调函数,在每次从堆中分配内存之前被调用,在初始化是VLD使用_CrtSetAllocation注册这个钩子函数。 全局变量在程序初始化时就初始化,如果将VLD作为一个全局变量就可以与程序一起启动,但是C/C++并没有约定全局变量初始化的顺序,如果其它全局变量的构造函数中有内存分配则可能无法检测到。
https://blog.csdn.net/fan_hai_ping/article/details/8023433

1
#pragma init_seg({ compiler | lib | user | "section-name" [, func-name]} )

:子模块(动态链接库)中包含 vld.h 并正确配置 vld lib 才能暴露子模块中的内存泄漏问题。

C++ 类模板的惰性会使静态成员被使用时才实例化。
模板单例模式,为保证静态变量实例化,给静态变量类型增加内联空函数,并调用之。(不影响性能,不扩大占用空间。)

https://docs.microsoft.com/en-us/cpp/preprocessor/init-seg?view=vs-2017

http://www.cnblogs.com/hgy413/archive/2011/10/15/3693581.html

阅读此文

2018-12-01
Socket 选项说明

Socket 选项说明

Socket 是应用层和传输层之间的一个抽象层,
有很多选项可对其进行控制:

SO_DEBUG SO_OOBINLINE
SO_REUSEADDR SO_LINGER
SO_TYPE SO_RCVLOWAT
SO_ERROR SO_SNDLOWAT
SO_DONTROUTE SO_RCVTIMEO
SO_RCVBUF SO_SNDtIMEO
SO_SNDBUF TCP_MAXSEG
SO_KEEPALIVE TCP_NODELAY
阅读此文

2018-11-30
关于引用计数

引用计数

引用计数是计算机编程语言中的一种内存管理技术,是指将资源(可以是对象、内存或磁盘空间等等)的被引用次数保存起来,当被引用次数变为零时就将其释放的过程。
使用引用计数技术可以实现自动资源管理的目的,同时引用计数还可以指使用引用计数技术回收未使用资源的垃圾回收算法。
当创建一个对象的实例并在堆上申请内存时,对象的引用计数就为1,在其他对象中需要持有这个对象时,就需要把该对象的引用计数加1,需要释放一个对象时,就将该对象的引用计数减1,直至对象的引用计数为0,对象的内存会被立刻释放。

阅读此文

2018-11-27
StarUML 使用教程

StarUML 使用教程

可视化编程

阅读此文

2018-11-16
TransformationMatrix变换矩阵

TransformationMatrix变换矩阵

奇妙数学世界

阅读此文