Hololens2开发笔记-VS2019创建DLL项目供Unity调用

前言

上一篇尝试将 Hololens2 的研究模式与 Unity 项目进行了整合。归根结底,就是将研究模式的相关 API(C++)构建成 DLL 文件,才能实现在 Unity(C#)中进行调用。这篇就介绍一下如何自己创建一个最简单的 DLL 文件,实现在 Unity 中的调用。

环境

  • Windows 10 教育版 18363.1379
  • Unity 2019.4.20f1c1
  • VS2019 16.8.6
  • WIN SDK 10.0.18362.0
  • Hololens2 内部预览版本 10.0.20301.1000

VS2019创建DLL项目

选择创建新项目,搜索 DLL 模板,选择 DLL(通用Windows) 模板,点击下一步

图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

设置项目名称和位置,点击创建

图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

选择目标版本最低版本,一般默认即可。实际上,项目创建完成后,在项目属性设置中也可更改这个设置,如何更改可以看:Hololens2-运行研究模式官方案例(SensorVisualization)

图片可能因为网络原因掉线了,请刷新或直接点我查看图片~

编写DLL代码

主要更改的就是 HL2RmUnityPlugin.hHL2RmUnityPlugin.cpp 这两个文件。编写代码如下

HL2RmUnityPlugin.h

#pragma once

#define FUNCTIONS_EXPORTS_API extern "C" __declspec(dllexport)

extern "C" {
	typedef struct IMUInputForUnity {
		double x;
		double y;
		double z;
	}INPUT;

	typedef struct IMUOutputForUnity {
		double x;
		double y;
		double z;
	}OUTPUT;
}

namespace HL2Stream {

	FUNCTIONS_EXPORTS_API int __stdcall GetIMUStreaming(INPUT* input, OUTPUT* output);

}

HL2RmUnityPlugin.cpp

#include "pch.h"
#include "HL2RmUnityPlugin.h"

int __stdcall HL2Stream::GetIMUStreaming(INPUT* input, OUTPUT* output)
{
	output->x = input->x * input->x;
	output->y = input->y * input->y;
	output->z = input->z * input->z;
	return 200;
}

GetIMUStreaming

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Apple_Coco

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值