描述:
我用VS2003新建了VISUAL C++中的MFC中的"MFC ACTIVEX CONTROL"
项目,我使用RELEASE版本,在"配置属性"中的"C/C++"中的"运行时库"设置为"多线程 DLL(/MD)"
方法,在"配置属性"中的"常规"中的"MFC的使用"使用"在静态库中使用MFC",
然后编译,编译成功,可在打开"配置属性"中的"C/C++"中的"运行时库"的设置竟然变为
"多线程(/MT)".
这个配置怎么会自己改呢??
然后我把配置重新改为"多线程 DLL(/MD)",结果编译错误,以下是错误提示:
test1 error LNK2001: 无法解析的外部符号 ___argv
test1 error LNK2001: 无法解析的外部符号 ___argc
test1 error LNK2001: 无法解析的外部符号 __mbctype
test1 error LNK2001: 无法解析的外部符号 __mbctype
test1 error LNK2001: 无法解析的外部符号 __mbctype
test1 fatal error LNK1120: 3 个无法解析的外部命令
问题1:
难道在RELEASE版本"在静态库中使用MFC",就不能使用"多线程 DLL(/MD)"?
但我在VISUAL C++6.0中测试是可以的,为什么VS2003就有问题呢?
问题2:
"多线程 DLL(/MD)"和"多线程(/MT)"到底有多大的差别??
特别是在ACTIVEX中要引用动态库,但动态库的设置是"多线程 DLL(/MD)",
这样ACTIVEX中设置为"多线程(/MT)"就变的有问题了.
问题3:
如果使用"在共享DLL中使用MFC",则需要带哪些MFC的动态库呢?