想用MFC 多人协同通过DLL开发一个程序。
现在有一些思路,希望大家能够提供更多的想法。
word那样做一个简单的主框架后,其它的想加什么功能就用DLL添加,大家有什么思路没有啊。
生成的DLL文档,如何在主框架中的固定开辟的位置显示。
多人协同开发,如何在DLL之间互相访问。这种多人协同用DLL开发的过程,有没有相关的例子可以参考一下。
看到的基本都是对话框的编程,有没有DLL方面多文档视图类的例子,或者我们常用的软件中
这样的例子呢。

解决方案 »

  1.   

    基本都是对话框的编程?基本上你看到大一点的软件都是用DLL堆起来的。
    例子?AutoCAD目录下你可以找到几千个DLL,其核心功能就只有管理数据,和管理DLL两个功能,其它所有的与实际工作相关的功能,都是有DLL实现的。
      

  2.   

    我目前开发的一个项目就是6-7人一起协同开发
    整个开发框架式我搭建的。
    SVN是少不了的,自动化编译脚本,持续集成 都要跟进。
    我DLL都用隐式的,整体功能都是我把握,因此DLL模块我会事先上传好,定义相关接口。其他人实现。我不知道我这种方法好不好。开发中碰到问题:有些要集成的内容,是之前开发的EXE,跨进程通信,仍然需要修改之前的源码,比较烦。
      

  3.   

    1、需求上进行功能划分,功能模块尽量不要相互影响
    2、定义一个主EXE工程总调度
    3、定义一个公用的DLL,所有功能模块需要交互的,或者共用的功能都放到这个公用的DLL
    4、EXE与公用DLL必须由一个人负责,其他人不能修改这里面的东西, 需要修改只能请负责的人修改
    5、其他人只要按需求写自己的功能模块就可以,一般交互的数据不要通过全局变量这种紧耦合的方法在功能模块中传递,使用其他的方法传递模块间的数据
      

  4.   

    其实COM是思想很先进的东西,超越了产生它的时代。多人利用DLL协同开发,
    其实就是组件开发的理念,也是COM产生的原因,纯DLL协同有很多问题,COM
    正是为了解决这些问题而产生的,参见《COM本质论》第一章、第二章。当然不用COM也可以,组件编程、或者是插件编程的实现方法,离不开“接口间接调用、
    隔离实现代码”等思想,无论COM还是.NET或者是Java,思想本质都是一样的,包括.NET
    4.0 里的MEF,但是单纯用接口仍然有很多问题,COM正式试图解决这些问题,虽然还不完美,
    但已是接近完美的方案了。懂得的人自然懂,不懂的当我自言自语吧。
      

  5.   

    个人观点:如果全部是VC开发,使用COM就有点浪费,而且性能可能也比不上DLL的组织,COM一般用于与其他语言交互,能不用尽量不用
      

  6.   

    能够看到这么多大牛指导,真的很开心,如果定接口的话,一般要怎么定。大家一般定哪些接口,如果很多个DLL的话,要有统一的接口。还有如果DLL中的文档视图想要在主框架中的某个固定位置固定的话,是不是要把主框架的指针传入DLL,这样可以行吗。
      

  7.   


    我现在做项目全部是组件编程的思想,不管是C++的还是.NET的,定接口其实是最难的一步,因为所谓
    接口就是对逻辑和业务的抽象,想上来就能把所有接口都设计完美是不可能的,能抽象多少是多少,这个
    要看抽接口人的概括能力和经验。很多DLL可以共用一个统一的接口,对于C++可能就是一个或多个.H
    文件,C#的话一般有一个叫contract的公共的DLL库,接口就是组件交互的协议。
    可以把Doc/View和整个框架放在DLL里,不过我一般用WTL,MFC没试过。主框架一般称为Shell,其实
    就剩一个壳了,把这个Shell的指针传递到DLL中(已经不是DLL,是一个组件)。
    回6楼,COM用于与其他语言交互只是COM中的一部分功能,用VC采用COM也不会浪费,COM是避免DLL Hell的手段,它能做到一些普通DLL做不到的事,能被更高程度的复用。
    当然,完全掌握COM需要学习成本。