usbrelay只提供了windows下的代码,最后项目要在linux下发布,所以只有重新写个驱动。
根据网上资料,修改之后:
1、先下载libusb1.0,我用的是libusb-1.0.20;
2、打开libusb-1.0.20\MS64\static,把libusb-1.0.lib文件加入源文件;
3、打开libusb-1.0.20\include\libusb-1.0,把libusb.h文件加入头文件;
MyDLL.h:
#define JNADLL extern "C" __declspec(dllexport)
JNADLL int add(int x, int y);
JNADLL int lock();
JNADLL int unlock();
MyDLL.cpp
// MyDLL.cpp : 定义 DLL 应用程序的导出函数。
//
#include "stdafx.h"
using namespace std;
#include "MyDLL.h"
#include "libusb.h" // libusb head file
#include <stdio.h>
#include <sys/types.h>
#include <string.h>
#define VID 0x16c0 // get of lsusb
#define PID 0x05df // get of lsusb
struct libusb_device_handle *devh = NULL;
int add(int x, int y)
{
return x + y;
}
int lock(){
/* usb init before libusb_open* */
int ret = l