如果把我们正在做的事情比喻成制造一台机器的话,通过前面的工作,我们已经设计和制造出这台机器所包含的各个零件,但这些零件是不能单独工作的,它们必须经过正确的组装才能成为一台能够运转的机器,可以按照当初我们的设想来工作。
我们的任务目标是要把以下这四个零件组装成我们的产品:
为了使它们看起来更象是同一个产品的组件,我们对工程目录做一下调整。
把界面工程TestDemo作为该产品的主工程,把其它三个工程作为主工程的依赖工程,将它们的目录移动到主工程下面,移动后这四个工程的目录如下:
在目录D:\source\TestDemo中,创建三个新文件夹,分别为:
接下来按照以下步骤完成设置:
现在,编译链接成功后,在目录Bin下可以看到TestDemo.exe,TestHostEng.dll,TestEmbedEng.dll和TestAppManager.dll,它们就是我们将要装配的产品的零件。
在目录Bin下面添加产品配置文件GameBsPlatform.xml,内容如下,
<?xml version="1.0" encoding="UTF-8" ?><Game-Baby-Sitter>
<Platform name="TestProduct" enable="true">
<HostContainer file="GmbsHostContainer.dll">
<Engine name="TestAppManager" file="TestAppManager.dll" autoinstall="true" />
<Engine name="TestHostEng" file="TestHostEng.dll" autoinstall="true" />
</HostContainer><EmbedContainer file="GmbsEmbedContainer.dll">
<Engine name="TestEmbedEng" file="TestEmbedEng.dll" autoinstall="true" />
</EmbedContainer></Platform>
</Game-Baby-Sitter>
如何配置GameBsPlatform.xml?请参考: 产品配置文件。
通过该配置文件,我们设置产品名为TestProduct,在平台安装阶段,主控引擎中将自动安装TestHostEng和TestAppManager,嵌入引擎自动安装TestEmbedEng。
运行TestDemo后,将看到产品的用户界面。首先打开目标程序,例如:Windows的写字板程序,点按钮安装平台,可以调试工具PacketDebug中查看程序的运行过程。
为了控制应用管理器中的HelloWorld应用,我们在界面上增加三个按钮,分别用于启动应用,发送事件和停止应用,如图1所示。

图1
这三个按钮的处理函数的代码如下:
void CTestDemoDlg::OnStartApp()
{
CGmbs::PostUserMessage(m_hPlatform, "TestAppManager", "StartApp", NULL, NULL);
}void CTestDemoDlg::OnSendEvent()
{
CGmbs::PostUserMessage(m_hPlatform, "TestAppManager", "SendEventToApp", NULL, NULL);
}void CTestDemoDlg::OnStopApp()
{
CGmbs::PostUserMessage(m_hPlatform, "TestAppManager", "StopApp", NULL, NULL);
}
重新编译运行,你就可以通过这三个按钮控制HelloWorld的运行了,打开PacketDebug查看其过程信息(见图2):

图2
您可以在开发包中找到该演示产品的示例源码。
至此,我们的产品装配完成。您可以在此基础上继续你的开发,在产品中加入更多的功能。