今天写了一个软件,然后使用 在静态库中使用 MFC模式编译Release 生成大小300多KB左右,然后拿到一个WINXP系统上,无法打开。疑惑了,静态库中使用MFC不是可以打开的吗?打开之后如下图所示(因为测试我就直接使用生成默认程序来测试了)
于是在代码优化那里看到了运行时库有一个选择,我便选择了多线程调试(/MTd) 这样生成的大小大概是700多KB左右。然后就可以正常打开了。觉得有点奇怪。于是我就继续研究了一下。
看到网上有人说了一句这样的话:/MD和/MDd将是潮流所趋,/ML和/MLd方式请及时放弃,/MT和/MTd在非必要时最好也不要采用了
好像MD很叼的样子,于是我就试试MD的运行时库试试,结果不让我编译,看看那段出错英文,懂了,要求是在共享 DLL 中使用 MFC ,那就设置一下呗。生成的大小是:57KB左右,看到这,我就觉得放到别人的机器上肯定打不开的,但是还是试试。结果竟然打开了。
我就觉得很不可思议,然后我看了一下那台机器上是安装了VC2008 VC2005之类的库,难道是因为这个原因吗?如下图所示。
那这样是不是意味着,只要客户电脑上安装了这些库,我就可以共享DLL中使用MFC并且设置为MD就好了?