微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Unity中的DllNotFound

如何解决Unity中的DllNotFound

我试图在Unity上使用我的C ++ dll,所以我将其复制到了Assets / Plugins和项目的根目录中,但是当我使用“播放”按钮或运行由构建生成的.exe文件时,却出现了DllFoundException。当我在DllImport中使用dll文件绝对路径时,它甚至不起作用。

但是,当我构建并运行项目时,它工作正常。

统一代码

using System.Collections;
using System.Collections.Generic;
using System.Runtime.InteropServices;
using UnityEngine;
using Dummiesman;

public class morph_face : MonoBehavIoUr
{
    bool morphed;


    [DllImport(@"facemorph",CallingConvention=CallingConvention.Cdecl)]
    static extern void morphModelsPoints(string src_model,string src_csv,string dst_csv,string output_path);


    public GameObject model;

    // Start is called before the first frame update
    void Start()
    {
        morphed = false;
    }

    // Update is called once per frame
    void Update()
    {
        if (!morphed && Input.GetKeyDown("space")) {
            Debug.Log("SpaceBar pressed the model will be modified.");
            morphModelsPoints("Data/src.obj","Data/src.csv","Data/dst.csv","Data/res.obj");

            //disable old mesh
            model.SetActive(false);

            OBJLoader obj = new OBJLoader();
            model = obj.Load("Data/res.obj");

            //displays new mesh
            model.SetActive(true);

            morphed = true;
        }
    }
}

Dll是使用以下配置构建的:Release / Win32。

这是dll导入设置:

enter image description here

解决方法

※如果我写错了请纠正我

如果我没记错的话,因为UNITY是64位,所以您不能在Editor中使用32个dll。如果您可以将dll重建为64位。如果要构建独立版本,则必须在“构建设置”中将体系结构设置为x86而不是x86_64。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?