【问题标题】:Error when trying to use DLL specific functions in Unity 5尝试在 Unity 5 中使用 DLL 特定函数时出错
【发布时间】:2015-12-30 11:24:05
【问题描述】:

我已将一个 DLL 导入 Unity,并且我确信它已成功导入。我在 DLL 上定义了一个函数供 Unity 使用,但是每当调用它时,Unity 都会向我抛出一个:

DllNotFoundException: k8055d.dll

DLL的函数是通过

[DllImport("k8055d")]
public static extern int Version();

运行此行时出现错误:

Debug.Log (Version().ToString());

我知道它找到了 DLL 的原因是,如果我在导入设置中将 DLL 设置为同时使用 x64 和 x86 架构,我会收到以下错误:

未能加载“Assets/Plugins/k8055d.dll”,预期为 64 位架构 (IMAGE_FILE_MACHINE_AMD64),但为 IMAGE_FILE_MACHINE_I386。您必须为 64 位架构重新编译插件。

但是当我在导入设置中将其设置为仅使用 x86 架构时,此错误消失了,控制台只给出了 DLLNotFoundException。

可以在here找到有关DLL的信息。

【问题讨论】:

    标签: c# dll unity3d import


    【解决方案1】:

    IMAGE_FILE_MACHINE_I386. You must recompile your plugin for 64 bit architecture. 的第一个 google 结果告诉您尝试安装并使用 32 位版本的 Unity(编辑器)来处理您的 32 位 dll (right here)。 再次谷歌搜索您的特定 dll(“K8055D.DLL x64”)会出现一个论坛帖子,其中有些人为 x64 编译了您的 dll(here,直接下载链接here)以及here 上发生的有趣事情。希望这能给你一些指导。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-10
      • 1970-01-01
      • 2010-10-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多