1、LoadLibrary
多次LoadLibrary,只有第一次会真正加载,后面一直驻留在EXE内存中。
只要不调用FreeLibrary,DLL一直都在。
后面的LoadLibrary等同于空操作。
多线程也是这样,因此DLL中多数函数中,new一个然后返回值,防止多个线程共用一个变量
2、SLT容器 vector中泛型类是深拷贝吗?
使用stl的数据结构,装载的成员到底是使用对象,还是使用指针,有时候会让人琢磨不定(使用一般对象吧,怕对象出作用域后被系统释放(如一个函数的局部变量),使用指针吧,怕频繁的new delete导致内存碎片)。
所以是vector CBase对象,还是vector<CBase*> 在使用push_back进行装载时都差不多,即使不new 指针,泛型也会装载一个新的类对象,有新的内存地址。重要的是CBase若存在指针成员变量(如这里的char *m_str),就需要手动写好拷贝构造函数(如这里对m_str进行内存拷贝,不能是简单的=赋值操作)