理论教育 VegaPrime应用公共类的添加和使用

VegaPrime应用公共类的添加和使用

时间:2023-11-24 理论教育 版权反馈
【摘要】:图5.2.4填写新类属性添加完新类“PublicMember”后,首先要做的就是为新类添加头文件。图5.2.6Vega Prime应用程序主线程函数对于VP3_2_7.cpp 文件的改造都包含在PublicMember 类中,详细内容如图5.2.7 和图5.2.8所示。图5.2.7PublicMember.h 文件图5.2.8PublicMember.cpp 文件对于改造后的代码的使用,将在后续章节进行详细介绍。

VegaPrime应用公共类的添加和使用

为了便于管理以及理清思路,将有关Vega Prime的代码用类进行封装。对于这个类,尽可能地简化,对于其中的成员,全部采用静态成员。这样做,不仅仅是因为线程函数必须是类的静态成员,也是为了简化全局变量的管理。

在MFC 对话框程序中添加新类非常简单,如图5.2.2所示。在图的右上部分,选中“类视图”标签,右键点击项目名称“VPTestDialog”,弹出右键菜单,依次选中“添加”→“添加类”,将会弹出如图5.2.3所示的窗口。

图5.2.2 添加类

图5.2.3 选择类别

在图5.2.3 中,选择“一般C++类”,然后点击“打开”按钮,将会出现图5.2.4所示的窗口。

在图5.2.4 中,输入类名“PublicMember”,其.h 文件自动就为“PublicMember.h”,其.cpp文件自动为“PublicMember.cpp”。另外,其访问为“public”。

图5.2.4 填写新类属性

添加完新类“PublicMember”后,首先要做的就是为新类添加头文件。对于在第4.2.1 节得到的VP3_2_7.cpp 文件,把其中的所有头文件复制到“PublicMember.h”的前面,如图5.2.5所示。

图5.2.5 添加头文件

PublicMember 类对VP3_2_7.cpp 文件主要进行了以下改造:

● 把define 函数改造为PublicMember::CTS_Define 函数;

● 把main 函数改造为PublicMember::CTS_RunBasicThread 函数;

● 增加了场景窗口句柄静态变量PublicMember::CTS_RunningWindow ;

● 增加了控制VP 线程运行的静态变量PublicMember::CTS_continueRunVP;

● 增加了VP 线程变量静态变量PublicMember::CTS_vegaThread;

● 把对象容器局部变量s_pInstancesToUnref 改造为静态变量PublicMember::CTS_s_ pInstancesToUnref;

● 把路径对象的局部变量pSearchPath_mySearchPath 改造为静态变量PublicMember::CTS_pSearchPath_mySearchPath;

● 把场景对象的局部变量 pScene_myScene 改造为静态变量 PublicMember::CTS_ pScene_myScene。

(1)对于对象容器,先有:

typedef vuVector< vuField< vuBase* > > InstancesList;

然后有:

定义:static InstancesList* CTS_s_pInstancesToUnref;

初始化:PublicMember::CTS_s_pInstancesToUnref=new InstancesList;

(2)对于路径对象和场景对象有:

定义:static vpSearchPath * CTS_pSearchPath_mySearchPath;

定义:static vpScene* CTS_pScene_myScene;

初始化:PublicMember::CTS_pSearchPath_mySearchPath=vpSearchPath::instance();(www.daowen.com)

初始化:PublicMember::CTS_pScene_myScene=new vpScene();

(3)对于PublicMember::CTS_Define 函数,只是把原来define 函数中的3个局部变量替换为了相应的静态变量,即:

s_pInstancesToUnref 替换为:PublicMember::CTS_s_pInstancesToUnref

pSearchPath_mySearchPath 替换为:PublicMember::CTS_pSearchPath_mySearchPath

pScene_myScene 替换为:PublicMember::CTS_ pScene_myScene

(4)把main 函数改造为PublicMember::CTS_RunBasicThread 函数,则进行了比较彻底的改造,以此来作为Vega Prime应用程序的主线程函数。详细代码如图5.2.6所示。后续章节还会继续添加修改适当的代码,以此来满足需要。

图5.2.6 Vega Prime应用程序主线程函数

对于VP3_2_7.cpp 文件的改造都包含在PublicMember 类中,详细内容如图5.2.7 和图5.2.8所示。

图5.2.7 PublicMember.h 文件

图5.2.8 PublicMember.cpp 文件

对于改造后的代码的使用,将在后续章节进行详细介绍。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈