Windows下编译libcurl
摘要:下载解压后查看curl-7.77.0\winbuild\README.md 把编译好的OpenSSL文件拷贝到deps目录 以管理员身份运行“适用于 VS 2017 的 x64 本机工具命令提示” cd到winbuild目录,执行: nmake /f Makefile.vc mode=static
阅读全文
Windows下编译OpenSSL
摘要:官网地址:https://www.openssl.org/source/ 编译需要 perl,nasm perl 推荐使用 Strawberry Perl strawberry perl:https://strawberryperl.com/nasm:https://www.nasm.us/pub/
阅读全文
Windows下用CMake编译libuv
摘要:转载:https://www.cnblogs.com/iwana/p/13897054.html 下载源码 https://github.com/libuv/libuv // github最新维护 https://dist.libuv.org/dist/ // 历史版本 编译 1.在libuv源码目
阅读全文
基础备忘
摘要:1.虚函数不能被内联。 因为“内联”意味着“在编译时刻用被调用函数的函数体来代替被调用的函数”。但是“虚函数”意味着“运行时刻决定被调用的是哪一个函数”。2.多重继承一般要求基类为虚基类。 不是虚基类的话,如果一个派生类有多于一条通向基类的继承路径,基类的数据成员会被复制到每一个继承类的对象里,继承...
阅读全文
复制构造函数的调用
摘要:1 #include 2 using namespace std; 3 4 class Test 5 { 6 public: 7 Test(int n = 1) 8 { 9 val = n;10 cout << "Con." << endl;11 }12 13 ...
阅读全文
GDB 入门篇
摘要:调试流程:(使用gcc编译时加上 -g -Wall选项)gdb attach pidinfo bb filename:linenum / b filename:functionnamecp variablenamectrl + cdeletedetach常用命令:启动:gdb executable或者gdb -> file executable列出源码:l(list) line_number设置断点:b(break) line_number, b(break) function_name, b(break) +offset, break ... if 查看断点:info b维护停止点:d
阅读全文
编码规范
摘要:1. 只允许使用空格缩进,Tab键一律用空格替换。2. 函数在源文件中的位置和其在头文件中的位置保持一致。3. 如果一个成员变量在多于两处地方被修改,那么就需要重构代码,把对该成员变量的修改封装起来,提供修改的接口。4. 提供访问数据的接口,而不是直接访问数据,例如不要直接使用vipInfo.level,而要使用vipInfo.Level()来访问vip等级。5. 不要把不同层次的抽象混杂在一起。即保持每个类简洁单纯只涉及一个抽象层次,一个类不要混杂不同抽象层次的功能。6. 代码中不要保留注释掉的旧代码,坚决干掉。7. 尽可能不要在头文件中进行宏定义,如果必须要定义那么要确保命名的唯一性,一定
阅读全文
日历时间
摘要:C语言标准库的 time_t time(time_t *tp) 函数返回当前日历时间。怎么理解日历时间呢? 关于“时间”的理解,可以参考 "The GNU C Library" 的文档: http://www.gnu.org/software/libc/manual/html_node/Date-and-Time.html#Date-and-Time 关于“日历时间”的理解,可以参考: http://www.gnu.org/software/libc/manual/html_node/Time-Basics.html#Time-Basics http://www.gnu.o
阅读全文
防止STL容器迭代器失效
摘要:本文转载自:http://blog.163.com/xychenbaihu@yeah/blog/static/1322296552010824114547940/1.序列性容器(vector、deque、list) erase迭代器不仅使所有指向被删元素的迭代器失效,而且使指向被删元素之后的元素的所
阅读全文
VS2008使用备忘
摘要:1. 在[Solution Explorer]中右键单击工程 → [Properties]:设置头文件目录:[Configuration Properties] → [c/c++] → [general] → [additional include directories]设置lib目录:[Configuration Properties] → [link] → [general] → [additional library directories]设置lib名称,例如xxx.lib:[Configuration Properties] → [link] → [input] → [additi
阅读全文
C++ 对象初始化和赋值
摘要:1.区分初始化和赋值 在C++中,当一个新对象被创建时,会有初始化操作;而赋值是修改一个已经存在的对象的值。 初始化操作由构造函数完成,而赋值操作由operator=操作符函数完成。如果程序员没有提供构造函数和operator=操作符函数,那么编译器会提供缺省版本,使用缺省构造函数或缺省复制构造函数初始化对象,使用缺省operator=操作符函数执行赋值操作。举例如下:View Code /** * @file Main.cpp */#include <iostream>using std::cout;using std::endl;class CDummy{public: CDu
阅读全文