多工程里的资源互用解决方案 (VC 6.0)
VC开发环境将类的结构分成.h和.cpp文件分别存储,在.h文件中声明,在.cpp文件中定义.
在ClassView(类视图)里我们看到的是.h文件里声明的变量或方法.
注意:
在开发前,各个组或人要协调好自己的资源ID的定义风格,举个例子,在一个项目中,两个人同时开发界面,一个是用户界面,一个是系统资源,都用到Dlg,Edit等资源,那么定义资源ID时, 两人的ID名称要不同,ID值也要不同, 两个人的Dlg可如此定义:
define IDD_SYSTEM_DIALOG1 51101
define IDD_SYSTEM_DIALOG2 51102
define IDD_SYSTEM_DIALOG3 51103
...
和
define IDD_USER_DIALOG1 61101
define IDD_USER_DIALOG2 61102
define IDD_USER_DIALOG3 61103
...
其他资源也如此定义.
合并多人开发的工程过程如下:
假设SYSTEM工程要用到USER工程的Dlg,
再假设SYSETM工程里的CSYSTEMView要用到USER的CUSERDlg.
CUSERDlg的资源ID为:IDD_USER_DIALOG1
1,将SYSTEM工程和USER工程文件夹放到同一目录下.
2,在CSYSTEMView.cpp里,加入
#include "../USER/CUSERDlg.h"
3,在VC界面下将Workspace(工作空间)切换到FileView(文件视图)下,
在"Source Files"上点击右键->"Add Files to Folder..."
添加USER目录下的CUSERDlg.cpp。
4,打开SYSTEM下的StdAfx.h,添加:
#include "../USER/resource.h"
5,用其他文本编辑器打开USER.RC,和SYSTEM.RC,在USER.RC里找到
IDD_USER_DIALOG1那一段,(从IDD_USER_DIALOG1到最近的END那一段)
将其拷贝到SYSTEM.RC文件里的"#ifndef _MAC"上面。
6,在SYSTEM.RC的#include "resource.h"下面加上#include "../USER/resource.h"
大功告成!!
注意:
1,可能会出现redefinition的警告,那可能是两个工程的ID定义有重的,再回去修改吧
2,可能CUSERDlg.h里包含了别的文件,这时还要将这些文件的.cpp也如同第3步一样添加到
"Source Files"里