联系方式:
support@gamebs.com

组装成一个产品

如果把我们正在做的事情比喻成制造一台机器的话,通过前面的工作,我们已经设计和制造出这台机器所包含的各个零件,但这些零件是不能单独工作的,它们必须经过正确的组装才能成为一台能够运转的机器,可以按照当初我们的设想来工作。

我们的任务目标是要把以下这四个零件组装成我们的产品:

调整工程目录

为了使它们看起来更象是同一个产品的组件,我们对工程目录做一下调整。

把界面工程TestDemo作为该产品的主工程,把其它三个工程作为主工程的依赖工程,将它们的目录移动到主工程下面,移动后这四个工程的目录如下:

在目录D:\source\TestDemo中,创建三个新文件夹,分别为:

接下来按照以下步骤完成设置:

  1. 在VC6.0中打开主工程TestDemo
  2. 把其它三个工程加进TestDemo的工作空间(workspace)
  3. 将TestDemo设为激活工程(Active Project),其它三个工程设为它的依赖工程。操作方法请参考: 如何在一个workspace中管理多个工程
  4. 将TestDemo的输出文件设为:Bin/TestDemo.exe。操作方法请参考: 配置工程的依赖库
  5. 将其它三个工程的输出文件分别设为:
    • ../Bin/TestHostEng.dll
    • ../Bin/TestEmbedEng.dll
    • ../Bin/TestAppManager.dll
  6. 将TestDemo的工作目录设为:Bin。操作方法请参考: 配置工程的输出路径

现在,编译链接成功后,在目录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

您可以在开发包中找到该演示产品的示例源码。

至此,我们的产品装配完成。您可以在此基础上继续你的开发,在产品中加入更多的功能。