C# Hololens无法pinvoke本机dll,错误为“;“未找到Dll”;

C# Hololens无法pinvoke本机dll,错误为“;“未找到Dll”;,c#,hololens,C#,Hololens,我试图构建一个非常简单的本地dll,它可以被一个简单的UWP c#app和PInvoke调用。UWP应用程序可以在正常的Windows 10计算机上运行,没有任何问题,但当我将UWP应用程序部署到Hololens时,它总是失败,并出现错误“未找到Dll”。我在全息透镜中测试了RS4和RS5,得到了相同的结果 复制步骤非常简单 < L> > p>创建一个本地C++ DLL项目(我使用VS 2017社区版),编写一些代码,比如返回1 + 2,例如: extern "C" { __decls

我试图构建一个非常简单的本地dll,它可以被一个简单的UWP c#app和PInvoke调用。UWP应用程序可以在正常的Windows 10计算机上运行,没有任何问题,但当我将UWP应用程序部署到Hololens时,它总是失败,并出现错误“未找到Dll”。我在全息透镜中测试了RS4和RS5,得到了相同的结果

复制步骤非常简单

< L> > p>创建一个本地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将无法运行


  • 任何帮助都是非常受欢迎的。

    你的C++ DLL本身有依赖关系。通常至少是C运行库和C++标准库。它们很可能是在Win10机器上偶然出现的,在全息镜头上出现的几率很低。考虑一下和你一起建设,你是对的。我添加了必要的依赖dll,问题解决了!请将您的评论作为答案发布,我会将其标记为已接受。非常感谢您的快速回答!