进程退出时(调用了 return 0; 之后CRT析构了全局对象,然后调用ExitProcess)dll中的静态成员并未在ExitProcess之前析构,而是exe通知dll detach之后再析构的。ExitProcess的时候,系统会强制回收一些new出来的堆区空间,如果这之后dll中的静态变量还会 引用到这些空间,则会出现内存不可读的错误。