在Visual Studio中使用psmoveapi

psmoveapi的作者提供的是一Mingw編譯的源代碼,在Visual Studio中不能直接使用

實際上Mingw編譯產生的.a文件和.lib文件可以一樣的使用,vs中可以直接調用

在編譯好的psmoveapi的build文件夾下游兩種,一個是.dll.a 這個是動態鏈接庫,還有一種就是.a這個是靜態鏈接庫。

和lib文件一樣的用法 直接

#pragma comment(lib, "libpsmoveapi.dll.a")

就可以了

先要把平臺改爲x64的,然後在圖中位置打開屬性頁
這裏寫圖片描述

在vc++目錄的包含目錄中添加psmoveapi的include文件夾
在庫目錄中添加build文件夾
這裏寫圖片描述

然後在鏈接器的輸入下面的附加依賴項中添加libpsmoveapi.dll.a
這裏寫圖片描述

最後把build文件夾內的dll文件複製到C盤 Windows文件夾下的System32和SysWOW64文件夾中就可以了

vs下的調試圖:
這裏寫圖片描述

最後附上我用來測試的代碼

#include"psmove.h"

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <stdbool.h>

#pragma comment(lib, "libpsmoveapi.dll.a")


int main()
{
    PSMove *move;

    move = psmove_connect();

    if (move == NULL) {
        fprintf(stderr, "Could not connect to controller.\n");
        return EXIT_FAILURE;
    }

    psmove_has_calibration(move);

    if (psmove_connection_type(move) == Conn_Bluetooth) {
        float ax, ay, az, gx, gy, gz;

        for (;;) {
            int res = psmove_poll(move);
            if (res) {
                psmove_get_accelerometer_frame(move, Frame_SecondHalf,
                    &ax, &ay, &az);
                psmove_get_gyroscope_frame(move, Frame_SecondHalf,
                    &gx, &gy, &gz);

                printf("A: %5.2f %5.2f %5.2f ", ax, ay, az);
                printf("G: %6.2f %6.2f %6.2f ", gx, gy, gz);
                printf("\n");
            }
        }
    }

    psmove_disconnect(move);

    return EXIT_SUCCESS;
}
發佈了102 篇原創文章 · 獲贊 138 · 訪問量 48萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章