vs+qt环境下, 对stk进行二次开发笔记

先安装好stk,这是废话。。然后找到stk安装目录下的几个文件相当于.h的"AgStkUtil.tlh","AgVGT.tlh","AgStkObjects.tlh","STKX.tlh",还有相当于.cpp的"AgStkUtil.tli"
"AgStkObjects.tli", "STKX.tli"。stk使用了com技术,提供的编程接口基本都在这几个文件里面。

1.弄个预编译头

(1)stdafx.h里面#include那几个.tlh的几个文件,可以用using namespace重置一下命名空间。(2)对应的stdafx.cpp里面#include那几个.tli文件。

接下来就是正常的使用com进行编程了,以下列出几个关键的对象的智能指针。

STKX.tlh中

IAgSTKXApplicationPtr 表示整个stk程序。

IAgStkObjectRootPtr 字面意思是所有stk中火箭,飞机,卫星等的根源,可以用来打开场景文件,以及获得当前场景。

IAgScenarioPtr stk场景对象,管理着所有飞行器对象,可以通过这个找到需要的飞行器对象。

IAgMissilePtr 导弹对象,stk中飞行器对象之一其他还有卫星飞机等不一一列举,都可以从根据stk软件界面中关键字然后在头文件中查找得到,有设置轨迹等函数,stk软件中对象的右键菜单里面的功能都可以通过这些对象中的函数实现。

IAgAnimationPtr 动画对象,有控制动画开始停止等的函数。

2.在界面上拖拽一个QAxWidget,设置好需要的stk插件,用来显示stk的系统图等

3.代码起始部分

::CoInitialize(NULL);

//创建stk程序对象

IAgSTKXApplicationPtr app;

app.CreateInstance(__uuidof(AgSTKXApplication));

//创建根对象,从这个root可以得到其他各种对象然后调用需要的对象中的函数,实现想要的效果。

 IAgStkObjectRootPtr root;

root.CreateInstance(__uuidof(AgStkObjectRoot));

3.结束时别忘记释放资源

root.Release();

app.Release();

::CoUninitialize();


  • 5
    点赞
  • 30
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值