您的位置:首页 > 其它

vegaprime自带例子学习笔记(1)

2006-03-17 16:58 417 查看
一个简单的vp例子

#include <vsgu.h>
#include <vp.h>
#include <vpApp.h>
#include "vuAllocTracer.h"
vuAllocTracer tracer(true, true);

int main(int argc, char *argv[])
{
// initialize vega prime
vp::initialize(argc, argv);

// initialize addition modules here
//vpModule::initializeModule(modulename);

// create a vpApp instance
vpApp *app = new vpApp;

// load acf file
if (argc <= 1)
app->define("vp_simple.acf");
else
app->define(argv[1]);

// configure my app
app->configure();

// runtime loop
app->run();

// unref my app instance
app->unref();

// shutdown vega prime
vp::shutdown();

return 0;
}

下面主要是说说关于vuAllocTracer类。

vegaprime主要是基于VSG开发。VSG全称vega scene graph,是一套完整的api接口。VSG由三部分组成,分别是VSGU,VSGR和VSGS。其中VSGU主要是负责内存和文件的操作。VSGU还自带了一套多线程控制机制,如多线程之间临界区操作,以避免死锁的发生。当然,如果你喜欢使用C++/ISO的文件操作,喜欢使用自己的临界区代码及文件操作也是可以的。但通过对VSGU的例子的阅读,发现它带的类库还是比C++/CLI的好用的多的。

之所以说了这么多,就是因为vuAllocTracer就是来自于VSGU。这个类的主要功能是为了检查内存泄漏。从vuAllocTracer的代码中可以看到其实现原理主要是在vuAllocTracer实例的构造函数和析构函数中获取分配的内存值,然后做差,以实现检测内存是否泄漏的目的。在vuAllocTracer析构函数中通过向屏幕输出,以报告用户的代码中是否产生内存泄漏。如果是基于MFC进行开发,可以继承该类,然后重载析构函数,使其不在控制台输出文本即可。

写的不多,亦不深入,只是小菜的学习笔记。欢迎大家交流。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: