【问题标题】:C++ dll in hololenshololens 中的 C++ dll
【发布时间】:2018-04-14 16:50:41
【问题描述】:

我正在使用基于 c ++ 的本机代码 dll 创建一个 hololens 应用程序。当我将它添加到统一项目(插件/WSA/x86)中时,问题就来了。

在 Visual Studio 中生成 UWP 解决方案时出现 DllNotFound 失败。

据我所知,有必要创建一个 UWP 库以在我的应用程序中使用它。该库必须包含我的本机代码。事实是,我不知道该怎么做。有什么方法可以在 UWP dll 上停止基于 c++ 的我的 dll 吗??

错误:System.DllNotFoundException:无法加载 DLL 'nativoHololensPrueba.dll':找不到指定的模块。 (HRESULT 异常:0x8007007E)。

C++

SOURCE:
  #include <iostream>
  #include <stdio.h>
  #include <memory>
  #include "Header.h"

__declspec(dllexport)
int testo() {
return 10;
}

HEADER:
extern "C" {

__declspec(dllexport)
    int testo();
}

c#

[DllImport("nativoHololensPrueba")]
public static extern int testo();

// Use this for initialization

public GameObject texto;


void Start () {
    texto.GetComponent<TextMesh>().text = "Cambiando el nombre " + testo();
}

【问题讨论】:

  • 执行此操作并实际收到有用答案的正确方法是: 1. 提供您放置 dll 文件的文件夹的屏幕截图。这将帮助我们验证您的文件夹拼写和路径是否正确。 2.编写一个简单的 C# 和 C++ 函数,然后尝试调用该函数。在此处发布简单的 C# 和 C++ 函数以验证您是否使用了正确的 DllImport。 3.当您收到错误时,照原样发布。不要将其更改为您自己的话。您可能会惊讶于通过谷歌搜索该错误,您会找到您的解决方案。
  • 我看到了你的更新。这是托管还是非托管 C++ 插件?
  • 对不起,我是新来的。有什么区别?
  • 您可以只搜索“托管或非托管 C++”。我认为根据您的代码它是不受管理的,我希望我是对的。我还没有制作 Hololens C++ 插件,所以我还不能说明问题,但在 DllImport 函数中提供第二个参数,看看会发生什么。 [DllImport("nativoHololensPrueba", CallingConvention = CallingConvention.Cdecl)]
  • 它返回同样的错误,我添加错误截图

标签: c++ visual-studio unity3d uwp hololens


【解决方案1】:

我也有这个问题,我通过在带有 /MT 标志的 ARM64(或 ARM)上编译 dll 来解决它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-01-24
    • 1970-01-01
    • 2019-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-16
    相关资源
    最近更新 更多