您的位置:首页 > 编程语言 > C语言/C++

LeapMotion SDK 开发之一 编写第一个LeapMotion VC++ 程序

2016-05-13 19:34 435 查看

前言

入手LeapMotion也有一段日子了,一直都只是玩玩应用中心里面的应用,没有时间做相应的开发,近来学习了一下,分享一下我的经验。

了解了以后才发现它的强大,SDK支持cpp csharp java js objc python这么多语言,同时它是识别也比较准确,对底层的封装也非常的好,可以很方便地获取到自己关心的数据而不需要有太多的算法知识,大大地降低了开发的门槛。

我的编程环境为

* Windows 10

* Leap_Motion_SDK_Windows_2.3.1

* Visual Studio 2015

为了简单起见,我建立的是VC++ win32控制台程序

LeapMotion SDK 的下载和安装

首先我们要去LeapMotion V2 Desktop网站下载自己系统对应的SDK,注意这个SDK里面是包含了LeapMotion Installer的了,所以就不需要重复下载了。下载完了以后解压到适合的地方。解压以后的内容如下。

首先当然是要安装驱动和相应的配置程序啦,这里就不细说了。安装完驱动正确识别出LeapMotion控制器以后,可以开始配置我们的第一个LeapMotion工程了。

LeapMotion SDK的使用

首先我们看一下LeapMotion SDK里面都有些什么

其实我们主要使用的就是这几个

*
docs
里面是相关的文档,我们在开发的时候一定要多多看看官方的文档。

*
include
是相应的头文件,我们使用VC++编程的时候需要用到

*
lib
里面就是LeapMotion封装好的库了,我们使用的时候就只需要简单地调用就可以完成很多炫酷的功能

*
samples
里面就是相应的示例文件,但是由于cpp的实例写得太复杂,我一开始看也是一脸的懵逼,所以我们不作过多的讨论

VC++工程的建立

创建新工程

我们就建立一个名叫
LeapMotion
的Win32控制台应用程序工程,后面的一切设置都保持默认就好。



保持默认即可



点击完成,成功建立工程

放置库文件

工程建立好了以后我们当然是不能够直接使用Leap库的,所以我们必须再进行相应的设置

为了方便起见,我在我的工程的所在目录底下建立了一个文件夹
LeapMotion
,然后把我们需要用到的库文件,也就是刚才解压的LeapMotion SDK里面的
include
lib
两个文件夹都复制到里面,完成以后当前工程的目录结构是这样的



设置工程属性

添加
附加包含目录
LeapSDK\include
,这样编译器的
#include“指令才能找到对应的头文件。



添加
附加库目录
LeapSDK\lib\x86
,注意我们要为对应的平台选择相应的库文件,我的目标平台是32位的,所以我用的是
lib/x86
底下的库,如果要开发64位的程序的话,只需要改为
lib/x64“即可。



添加
附加依赖项
Leap.lib
,这样编译器才知道要链接哪个库。



在编译后把动态库文件拷贝到合适的位置,设置
后期生成事件
底下的
命令行
,添加
xcopy /yr "LeapSDK\lib\x86\Leap.dll" "$(TargetDir)
, 也就是说要把
Leap.dll
这个动态链接库文件复制到可执行文件相同的目录底下,否则我们编写的程序的运行的时候就会提示找不到库文件了。



测试代码

为了检验一切是否正常,我们先用一点点代码来测试,具体代码的作用我们会在后面的章节里再展开讨论。

LeapMotion.cpp

用将以下代码替换
LeapMotion.cpp
里面的所有内容

#include "stdafx.h"

using namespace Leap;

class SampleListener : public Listener {
public:
virtual void onConnect(const Controller&);
};

void SampleListener::onConnect(const Controller& controller) {
std::cout << "Connected" << std::endl;
}

int main(int argc, char** argv) {
SampleListener listener;
Controller controller;
controller.addListener(listener);
std::cin.get();
controller.removeListener(listener);

return 0;
}


stdafx.h

用将以下代码替换
stdafx.h
里面的所有内容

#pragma once

#include "targetver.h"

#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <string>
#include <Leap.h>


测试

按下Ctrl-F5,编译并且执行,如果一切无误,那么控制台将会打印出



恭喜!你走出了LeapMotion奇妙之旅的第一步!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: