想用MFC 多人协同通过DLL开发一个程序。
现在有一些思路,希望大家能够提供更多的想法。
word那样做一个简单的主框架后,其它的想加什么功能就用DLL添加,大家有什么思路没有啊。
生成的DLL文档,如何在主框架中的固定开辟的位置显示。
多人协同开发,如何在DLL之间互相访问。这种多人协同用DLL开发的过程,有没有相关的例子可以参考一下。
看到的基本都是对话框的编程,有没有DLL方面多文档视图类的例子,或者我们常用的软件中
这样的例子呢。
现在有一些思路,希望大家能够提供更多的想法。
word那样做一个简单的主框架后,其它的想加什么功能就用DLL添加,大家有什么思路没有啊。
生成的DLL文档,如何在主框架中的固定开辟的位置显示。
多人协同开发,如何在DLL之间互相访问。这种多人协同用DLL开发的过程,有没有相关的例子可以参考一下。
看到的基本都是对话框的编程,有没有DLL方面多文档视图类的例子,或者我们常用的软件中
这样的例子呢。
解决方案 »
- 关于逻辑坐标和设备坐标的问题
- VC和Matlab混合编程
- vc++中怎么实现连续播放图片,类似幻灯片那
- 主控制台程序控制多个DLL进行交互
- 如何在CCOMBOX控件动态创建CHECKBOX??
- 客户端连接服务器端失败
- 在Win2000下编译的CPropertySheet程序在Win98下长出一大截
- vc++ + sql server 的事务问题
- 如何确定一个ACCESS数据库中是否有 表AA(VC+DAO)
- 如何屏蔽系统热建?
- 静态框为何响应不了鼠标单击事件
- windows ULONG 重复定义 问题 error C2371: 'ULONG' : redefinition; different basic type
例子?AutoCAD目录下你可以找到几千个DLL,其核心功能就只有管理数据,和管理DLL两个功能,其它所有的与实际工作相关的功能,都是有DLL实现的。
整个开发框架式我搭建的。
SVN是少不了的,自动化编译脚本,持续集成 都要跟进。
我DLL都用隐式的,整体功能都是我把握,因此DLL模块我会事先上传好,定义相关接口。其他人实现。我不知道我这种方法好不好。开发中碰到问题:有些要集成的内容,是之前开发的EXE,跨进程通信,仍然需要修改之前的源码,比较烦。
2、定义一个主EXE工程总调度
3、定义一个公用的DLL,所有功能模块需要交互的,或者共用的功能都放到这个公用的DLL
4、EXE与公用DLL必须由一个人负责,其他人不能修改这里面的东西, 需要修改只能请负责的人修改
5、其他人只要按需求写自己的功能模块就可以,一般交互的数据不要通过全局变量这种紧耦合的方法在功能模块中传递,使用其他的方法传递模块间的数据
其实就是组件开发的理念,也是COM产生的原因,纯DLL协同有很多问题,COM
正是为了解决这些问题而产生的,参见《COM本质论》第一章、第二章。当然不用COM也可以,组件编程、或者是插件编程的实现方法,离不开“接口间接调用、
隔离实现代码”等思想,无论COM还是.NET或者是Java,思想本质都是一样的,包括.NET
4.0 里的MEF,但是单纯用接口仍然有很多问题,COM正式试图解决这些问题,虽然还不完美,
但已是接近完美的方案了。懂得的人自然懂,不懂的当我自言自语吧。
我现在做项目全部是组件编程的思想,不管是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需要学习成本。