我尝试构建一个非常简单的本机dll,可以通过带有PInvoke的简单UWP c#应用程序调用该dll。 UWP应用程序可以正常运行在Windows 10计算机上,没有任何问题,但是当我将UWP应用程序部署到Hololens时,它始终会失败,并显示错误“找不到Dll”。我已经在Hololens中测试了RS4和RS5,并获得了相同的结果。
复制步骤非常简单。
创建一个本地C ++ DLL项目(我使用的是VS 2017社区版本),并编写一些代码,例如返回1 + 2,例如:
extern "C" {
__declspec(dllexport) int __stdcall add12() {
return 1 + 2;
}
}
创建一个空白的UWP项目,以使用PInvoke调用DLL函数:
public class WrapperClass
{
[DllImport("CPPDLL", CallingConvention = CallingConvention.StdCall)]
public static extern int add12();
}
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
int result = WrapperClass.add12();
Debug.WriteLine("add 12 = " + result);
}
}
将本机DLL添加到项目中,并在Win10计算机和Hololens上构建并运行UWP应用程序,您会注意到Win10计算机将成功运行,而Hololens将无法运行。 p>
我们非常感谢您的帮助。