【发布时间】:2021-05-30 16:25:44
【问题描述】:
我想构建一个 c++ dll,但我发现我的 dll 可能有问题。我刚刚为 ARM64 构建了一个简单的函数,将其部署到 Hololens2 中。 头文件.h文件:
#include "pch.h"
#ifdef MYRESEARCHMODE_EXPORTS
#define DllExport __declspec(dllexport)
#else
#define DllExport _declspec(dllimport)
#endif
#ifdef _cplusplus
extern "C"
{
#endif
class DllExports
{
public:
DllExport static int __stdcall DOUT();
};
#ifdef _cplusplus
}
#endif
The .cpp file like this:
#define MYRESEARCHMODE_EXPORTS
#include "pch.h"
#include"myResearchMode.h"
int __stdcall DllExports::DOUT()
{
return 123;
}
并且我使用了Dumpbin来测试它是否构建成功。 然后我在 Unity/Plugin 中导入它
[DllImport("myResearchMode.dll", EntryPoint = "?DOUT@DllExports@@SAHXZ ", CallingConvention = CallingConvention.Cdecl)]
public static extern int DOUT();
但我发现结果未能显示。我想我的 dll 有问题,我忘记设置一些设置了吗?或者错误在哪里?
【问题讨论】:
-
我建议您先看看您是否可以在本地运行您的 DLL 的 windows\linux 变体。然后在您的目标设备上尝试官方示例:github.com/Unity-Technologies/NativeRenderingPlugin 一旦两者都有效,您可以调查您可能缺少什么的差异。
标签: c# c++ unity3d dll hololens