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

前言

入手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控制台应用程序工程,后面的一切设置都保持默认就好。
LeapMotion SDK 开发之一 编写第一个LeapMotion VC++ 程序_第1张图片

保持默认即可
LeapMotion SDK 开发之一 编写第一个LeapMotion VC++ 程序_第2张图片
点击完成,成功建立工程

放置库文件

工程建立好了以后我们当然是不能够直接使用Leap库的,所以我们必须再进行相应的设置
为了方便起见,我在我的工程的所在目录底下建立了一个文件夹LeapMotion,然后把我们需要用到的库文件,也就是刚才解压的LeapMotion SDK里面的includelib两个文件夹都复制到里面,完成以后当前工程的目录结构是这样的
LeapMotion SDK 开发之一 编写第一个LeapMotion VC++ 程序_第3张图片

设置工程属性

  1. 添加附加包含目录LeapSDK\include,这样编译器的#include“指令才能找到对应的头文件。
    LeapMotion SDK 开发之一 编写第一个LeapMotion VC++ 程序_第4张图片

  2. 添加附加库目录LeapSDK\lib\x86,注意我们要为对应的平台选择相应的库文件,我的目标平台是32位的,所以我用的是lib/x86底下的库,如果要开发64位的程序的话,只需要改为lib/x64“即可。
    LeapMotion SDK 开发之一 编写第一个LeapMotion VC++ 程序_第5张图片

  3. 添加附加依赖项 Leap.lib,这样编译器才知道要链接哪个库。
    LeapMotion SDK 开发之一 编写第一个LeapMotion VC++ 程序_第6张图片

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

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

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 
#include 
#include 
#include 
#include 

测试

按下Ctrl-F5,编译并且执行,如果一切无误,那么控制台将会打印出
LeapMotion SDK 开发之一 编写第一个LeapMotion VC++ 程序_第8张图片
恭喜!你走出了LeapMotion奇妙之旅的第一步!

你可能感兴趣的:(LeapMotion)