STK与VC++联合编程实战(第一回:准备工作)

STK版本:9.2.2

VC版本:vc15

开发环境:Visual Studio 2017

安装STK 9.2.2,查看帮助文档,确认随安装包还安装了CodeSamples(示例代码),包括C#(CSharp)、Java、HTML、Matlab、VB.NET、PowerPoint等语言,目录结构如下图:

其中以C#和Java语言的例子代码最多,分别都有二十多个例子,本文针对VC++探索。VC++代码实例在‘.\CodeSamples\CustomApplications\C++’目录下,包含两个例子:Events和Tutorial,如下图。

可以看出,STK 9.2.2版默认提供的解决方案是基于vs2005和vs2008的。

运行VS2017(其他版本的VS应该是类似的)打开示例解决方案(例如上图的那个Samples_VS2008.sln,提示:STK示例代码以及STK的所有项目工程都是基于MFC开发的,符合微软的COM组件规范,所以VS2017需要安装“用于x86和x64的Visual C++ MFC”),提示进行解决方案版本升级,按默认操作执行即可。

生成项目。。。

当然是报错!

错误提示(可能在你的主机上错误会有所不同):error MSB8036: 找不到 Windows SDK 版本8.1。请安装所需的版本的 Windows SDK 或者在项目属性页中或通过右键单击解决方案并选择“重定解决方案目标”来更改 SDK 版本。

按提示在解决方案上点击鼠标右键,选择‘重定解决方案目标’。

然后弹出以下窗口,保持默认值,直接点击‘确定’按钮,完成重定操作。

再次生成解决方案,其中生成“Tutorial”项目成功,生成“Events”项目失败。

生成“Tutorial”项目时有两个警告,可忽略,运行“Tutorial”项目,程序界面如下:

从界面判断,可以新建场景,可以对二维场景进行缩放。点击‘New Scenario’按钮,新建场景,结束后会弹出一个“New Scenario Created”的提示框,点击提示框的‘确定’按钮,程序界面如下:

其中三维窗口通过鼠标左右键的操作可以正常的旋转和缩放,二维窗口则先点击‘Zoom In’按钮,然后在窗口中通过按下鼠标左键拖动划出放大的区域,执行二维底图的放大,点击‘Zoom Out’按钮恢复之前的缩放效果。

另外,在三维窗口移动鼠标时,界面会提示当前鼠标位置的经纬高信息,在三维窗口中双击鼠标左键也能直接在三维窗口中提示经纬度信息。

OK!回头看看“Events”项目。

错误信息为:fatal error C1189: #error:  MFC does not support WINVER less than 0x0501.  Please change the definition of WINVER in your project properties or precompiled header.

在项目中搜索关键字‘WINVER’,定位到文件stdafx.h,发现示例代码定义的WINVER有点古老(0x0400),说明STK9产品编译出品的时间真的早(但这并不妨碍其产品的专业性和稳定性),如下图。

  1. stdafx.h(代码片段)

直接注释掉上面的代码行,由编译器自动根据当前系统的配置决定上述环境变量(配置),重新生成项目,OK!成功!(注:如果你是将代码从默认安装位置拷贝出来再行编译,则需要重新指定项目的外部包含目录(CppIncludes,这个目录下的文件非常重要,后续实践中会逐一解释)的相对路径,‘Tutorial’项目没有这个问题,说明两个示例项目的配置和功能还是有差异的)。

运行‘Events’项目,程序界面如下:

界面与‘Tutorial’项目类似都是基于对话框,只有三维窗口,功能更多,可以新建场景、向场景添加卫星、添加地面设施,可以进行仿真(动画演示),下方的编辑框还可以实时输出场景信息。

一番操作后界面如下:

  • 1
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值