##动态链接库简介:
动态链接库(Dynamic-LinkLibrary)通常包含一堆程序员自定义的变量与函数,可以在运行时动态链接到可执行文件。
##静态库的扩展名:
.dll (Win) .so(Linux)
##静态库的优缺点:
优点:

缺点:
通常包含一堆程序员自定义的变量与函数,在编译期间由编译器与链接器将它集成到可执行文件中。
##静态库的扩展名:
.lib (Win) .a(Linux)
##静态库的优缺点:
**优点:**发布时只需发布exe,因为库已被集成到可执行文件中,运行时对这个库不再依赖。
**缺点:**静态库集成到可执行文件中导致exe文件较大,后续想升级库必须重新编译
##创建静态库的步骤:
>(1) 创建- 阅读剩余部分 -
0\. **GetModuleHandle** (
PCTSTR pszModule; //DLL名称
)
>为了知道一个可执行文件或DLL文件被加载到进程地址空间的什么位置,可以用GetModuleHandle函数来返回一个句柄/基地址。如果系统找到了指定的可执行文件或DLL文件名称,GetModuleHandle就会返回可执行文件/DLL文件映像加载到的基地址。
例: HMODULE ntdll = GetModuleHandle( "ntdll.dll" )- 阅读剩余部分 -

##LoadLibrary() 加载dll函数:
格式:
```cpp
HMODULE WINAPI LoadLibrary(
_In_LPCWSTR lpLibFileName
);
参数:
lpLibFileName: 动态链接库的名称
返回值:
成功则返回库模块的句柄,失败返回0,通过GetLastErro- 阅读剩余部分 -
##什么是库:
是一些最常用的、成熟的、可复用的代码,库代码编译成目标文件后打包存放。
##链接库的分类:
分为静态链接库和动态链接库
```cpp
静态库: .lib文件(Win) .a文件(Linux)
动态库: .dll文件(Win) .so文件(Linux)
```
##链接库的作用:
1.现实中每个程序开发不可能从零开始,需要依赖很多底层库
2.如果我们不希望一些核心的源代码被空开或者被修改,把代码封装成库是最好的选择。
- 阅读剩余部分 -

##C++中的string类型:
在C语言中字符串用字符数组的方式表示,在C++中字符串作为一个单独的数据类型。
1. 需要导入的头文件:
```cpp
#include 或 #include
```
2. 定义string类型:
```cpp
string 字符串名;
```
3. 为字符串赋值:
```cpp
- 阅读剩余部分 -
**在C++中,内存分成5个区,但这五个区对于编译器的不同会有大致3中说法:**
##说法一:
1、栈区(stack)— 由编译器自动分配释放 ,存放函数的参数值,局部变量的值等。其操作方式类似于数据结构中的栈。
2、堆区(heap) — 一般由程序员分配释放, 若程序员不释放,程序结束时可能由OS回收 。注意它与数据结构中的堆是两回事,分配方式倒是类似于链表。
3、全局区(静态区)(static)— 全局变量和静态变量的存储是放在一块的。 - 程序结束后有系统释- 阅读剩余部分 -
#内置函数 (inline function)
**C和C++提升效率的方法: **C用宏定义,C++用内置函数。
**概念:**调用函数时需要一定的时间和空间的开销,内置函数在编译时将所调用函数的代码直接嵌入到主函数中,所以在程序执行的时候并不需要再调用函数。内置函数又称内联函数。
##内置函数定义格式:
**在声明函数和定义函数时在开头加上关键字"inline"。也可以只在其中一处声明"inline"。**
**实例:**
"的方式实现:

**注意:**流对象cin、cout和流运算符的定义存放在C++的输入输出流库iostream中;
cout、cin并不是C++本身提供的语句,运算符也不是C++本身提供的运算符
要在程序中使用cin、cout和流运算符,必须先: #include 。
#- 阅读剩余部分 -
#数据类型:
**基本类型的区别:**1.新增了布尔型(bool)/逻辑性。
**构造类型的区别:**1.在定义结构体类型变量时,其前的struct关键字可以被省略; 2.新增了类类型(class) 和 引用类型。
**其他区别:** 1.强制类型转换时数据类型外可不加括号。 2.新增动态内存分配的运算符 3.新增作用域运算符 4.变量的引用 5.新增了常变量
##布尔型数据及其运算:
**知识:**C和C++都用数值1代表"真",用0代表"假";特别是C- 阅读剩余部分 -
##包含头文件iostream
```cpp
#include //为了支持输入输出,需要在程序开始包含
```
**C++的头文件:**

##使用命名空间std
```cpp
using namespace std; //定义命名空间std,下方的cout和endl就存在std内。
```
##创建主函数
```- 阅读剩余部分 -