1. 动态链接库和静态链接库的区别
静态链接库与动态链接库都是共享代码的方式,如果采用静态链接库,无论愿不愿意,lib指令都全部被直接包含在最终生成的EXE文件中了。但是若使用DLL, 该DLL不必被包含在最终的EXE文件中,EXE文件执行时可以动态的引用和卸载这个EXE独立的DLL文件。静态链接库和动态链接库的另外的一个区别在于静态链接库中不能再包含其他的动态链接库和静态链接库,而动态链接库中可以在包含其它的动态或静态链接库。动态库就是在需要调用其中的函数时,根据函数映射表中找到该函数然后调用堆栈中执行。如果当前工程中有多处对dll文件中同一个函数调用,那么执行时,这个函数只会留下一份拷贝。但是如果有多处对lib文件中同一个函数的调用,那么执行时,该函数在当前程序的执行空间里留下多份拷贝,而且是一处调用就产生一份拷贝。但是如果有多处对lib文件中同一个函数的调用,那么执行时,该函数将在当前程序的执行空间里留下多份拷贝,而且是一处调用就产生一份拷贝。静态链接库与动态链接库都是共享代码的方式