【发布时间】:2013-04-10 10:42:31
【问题描述】:
我知道this similar question,但它没有回应我的问题。
我使用 Visual Studio 2010 编写了两个 .dlls。一个是 C++,并与用 C++ 编写的 SDK 通信。另一个是该 C++ 库的 C# 包装器,因此可以在 C# 上下文中使用。
我的计划是让我在Unity3D 中使用我的代码,但显然情况并非如此。如果.NET 不是.NET 程序集,似乎Unity3D 不允许我将.dlls 作为资产导入。所以我可以添加我的 C# 包装器,但不能添加 C++ dll。
每当我尝试访问 C++ 库时,这都会导致DllNotFoundException。我尝试简单地将 C++ 库复制到 Assets/Plugins 文件夹中,但结果相同。
有没有办法正确地做到这一点?这是我的项目设置中非常重要的部分。
【问题讨论】:
-
如何调用 C++ DLL?您不需要将其作为参考添加到您的解决方案中。它是本机资源。
-
@SimonWhitehead 我使用
PInvoke调用C++ 函数,使用[DllImport("Foo.dll")]。当两个 dll 在同一个文件夹中时它可以工作,但我不知道 Unity 如何处理 dll 插件。 -
您使用的是什么许可证?你的目标是什么?