在VC中_DLL并不是指它是DLL工程,而是是否采用VC动态库来生成项目(此项是SYS级别,只要采用/MD、/MDd此值就会被编译器内置预设为1,且没有预留配置项预处理器的用户级别更改)
_MT也不代表它是静态库工程,并且也不代表是否采用VC静态库来生成项目,事实上现如今所有的四种编译方式/MD、/MT、/MDd、/MTd它都是支持多线程的库,_MT猜测大概是兼容早期的非多线程C库而搞的,而现如今无论哪种编译方式_MT的值都是1
_LIB这个才是官方真正代表静态库工程(但它是USER级别,意思是这个在用户那边可以允许在配置项预处理器中改,只不过你从VS里新建静态库工程VS就自动帮你写进去)
_USERDLL这个是代表动态库工程(是USER级别)
_WINDLL这个是代表动态库工程(是SYS级别),它与项目配置类型相关