如何将大型MFC项目拆分为较小的项目

时间:2009-11-17 09:55:10

标签: c++ visual-studio mfc split project

我们有一个大型MFC / C ++ Visual Studio 2005解决方案,目前包含两个项目:

  • 代码(大约1500 .h / .cpp文件,动态链接到MFC)
  • 资源DLL(我们使用外部工具翻译资源)

我们有什么选择(lib,dll,...)? 我们从哪里开始? 是否有这个或教程的技术样本(我找不到任何东西)?

PS:我们还没有使用C ++ / Visual Studio创建dll和/或libs的经验,所以任何提示如何开始都会受到赞赏。

4 个答案:

答案 0 :(得分:0)

您可以使用appTranslator删除所有资源DLL管理:该工具会跟踪其项目文件中的所有翻译,并为您创建资源DLL。其中一个好处是您不必在Visual Studio中管理所有已翻译的.rc文件和关联的资源DLL项目。

免责声明:我是appTranslator的作者。

答案 1 :(得分:0)

这在很大程度上取决于您的代码库质量。如果你有很好的封装类/组件通过定义良好的接口进行交互,那么不应该将它们分成不同的项目。 此外,在开始之前,请考虑您想要实现的目标。系统中是否存在要隔离的可重用或平台相关组件?在我的部门,我们编写了一组Visual C ++ 2005向导,确保所有新创建的项目都符合某个目录结构和组织(例如,我们可以自动为我们的库创建单元测试项目)。我们还使用它们来确保可以通过SVN外部包含可重用组件,这确实可以节省大量工作。

因此,在您进一步了解之前,请确保您的要求正确。

答案 2 :(得分:0)

显然,你的问题没有普遍的答案。

首先,您需要使用DLL或静态链接的库创建一些简单的程序(仅作为练习)。在您知道如何从头开始创建此类应用程序之前,不建议尝试分割现实生活中的项目。 对于静态库和DLL,有几个MS教程herehere

之后,您可以接近您的申请。 首先尝试了解项目的结构。理想情况下,您将能够找出GUI部分,业务逻辑和后端。

最简单的通常是GUI(因为业务逻辑经常与后端交织在一起,我的预测你很难将这两者分开)。 将驱动GUI的所有文件(对话框,用户事件处理程序等)移动到单独的DLL中。 一旦GUI分离,请查看其余部分。根据我的经验,接下来要做的是单独的实用程序,它们在应用程序的任何地方都使用,但实际上并不依赖于应用程序状态(或者在每次调用时都提供相关状态)。 在这样做的同时,您将了解项目的其余部分,希望能够进一步分解它。 过程是渐进的,没有魔杖。遗憾。

答案 3 :(得分:-1)

MFC这是否必须从GUI处理程序中提取业务逻辑开始。完成此操作后,您可以将它们放在alib中。