【发布时间】: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