我想在VS 2008中用 VC ++编写一个程序
我希望我的程序可以在 WIN NT,XP,Vista和WIN 7 上运行。
我希望我的程序只是一个 .EXE 文件。
我不知道" 运行时库"的选项和" 使用MFC "
如下组合:
------------------------------------------------------------------------ | |Multi-threaded | Multi-threaded DLL| ------------------------------------------------------------------------ |Use MFC in a Static Library | A | B | ------------------------------------------------------------------------ |Use MFC in a Shared DLL | C | D | ------------------------------------------------------------------------
我有一些问题,如果你有了,请你帮我一个忙。感谢。
1 。四种组合哪一个是我的最佳选择? A,B,C或D ?
2 。我测试后,选择 B 会出现编译错误,为什么?
3 。当我在VS中创建新项目或解决方案时,默认选项为 D ,因此D对于commond程序来说,最佳选择是什么?
:)等你完美答案。
答案 0 :(得分:1)
我个人的偏好是使用MFC作为静态库,因此没有其他依赖项。在编写MFC时,通常使用共享DLL来节省资源,但在这个Gigabyte RAM和Terabyte磁盘时代,几百K并不重要。
使用MFC作为DLL有一个优点,即如果有Service Pack更新,则可以安装新的DLL而无需替换应用程序。
如果您正在编写使用MFC的DLL(而不是EXE),则可能需要与应用程序共享MFC对象并使用应用程序的事件循环。在这种情况下,您被迫使用MFC作为DLL。我认为这就是你的组合“B”不起作用的原因。
答案 1 :(得分:0)
要在MFC中获得真正静态链接的可执行文件,您必须选择 A 。这将告诉MFC静态编译其类,并静态链接运行时库(我相信它是MSVCR.dll文件)。编译器不再允许选择B,因为它实际上没有用处。只有当您想要静态链接多个库(可能是您自己的库),但您希望所有库共享运行时时,才会使用该选项。你最终会遇到内存分配问题和其他废话。
因此,对于您的项目,选择静态链接和MFC以及运行时选项A.