2009-11-17 79 views
0

我们有一个大的MFC/C++的Visual Studio 2005的解决方案,目前包括两个项目:如何拆分一个大的MFC项目为较小的项目

  • 码(约1500 .H/.cpp文件,链接动态地MFC)
  • 资源DLL(我们使用外部工具)

翻译资源,我们有哪些选择(LIB,DLL,...)? 我们从哪里开始? 有没有这个或教程的技术示例(我找不到任何东西)? PS:我们还没有使用C++/Visual Studio创建dll和/或库的经验,因此,我们非常感谢所有有关如何开始的技巧。

回答

0

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

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

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

最简单的通常是GUI(因为业务逻辑通常与后端交织在一起,我的预测你将很难分开这两个)。 将所有驱动GUI的文件(对话框,用户事件处理程序等)移动到单独的DLL中。 一旦GUI分离,请查看其余部分。根据我的经验,接下来要做的事情是分离实用程序,这些实用程序在应用程序中随处可见,但并不依赖于应用程序状态(或每次调用时都提供相关状态)。 虽然这样做,你会学到很多关于该项目的其余部分,希望足以将其进一步分割。 过程是渐进的,没有魔杖。抱歉。

-1

MFC是否需要从GUI处理程序提取业务逻辑开始。一旦你完成了这个,你可以把它们放入alib中。

0

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

声明:我是appTranslator的作者。

0

这非常依赖于您的代码库质量。如果你有很好的封装的类/组件通过定义良好的接口进行交互,不应该很难将它们分离到不同的项目中。 另外,在你开始之前,想想你想达到什么。系统中是否存在可重用或与平台相关的组件?在我的部门,我们编写了一套Visual C++ 2005向导,确保所有新创建的项目符合特定的目录结构和组织(例如,我们可以为我们的库自动创建单元测试项目)。我们也使用它们来确保可通过SVN外部程序包含可重用组件,这确实可以节省大量工作。

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