You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Unity导入Windows静态库插件报错DllNotFoundException寻求解决方法

解决Unity中静态库PInvoke报错DllNotFoundException的方案
  • 明确核心逻辑:PInvoke是运行时动态加载DLL的机制,.lib静态库是编译时链接的二进制文件,无法直接通过DllImport调用——这也是你用DLL正常、用静态库报错的根本原因。

  • 方案一:将静态库编译为动态链接库(推荐)

    • 获取cspice的源码或官方编译工程,重新编译生成.dll文件,替换当前的.lib文件放到Assets/Plugins/x64目录,保持DllImport("cspice")的调用代码不变即可正常运行。
    • 若没有源码,优先查找官方提供的预编译DLL版本,避免自行编译的兼容性问题。
  • 方案二:用C++插件封装静态库

    • 创建C动态链接库工程,将cspice.lib作为依赖库链接到工程中,编写封装函数暴露给C#调用。示例C代码:
      #include "cspice.h"
      extern "C" __declspec(dllexport) void furnsh_c_wrapper(const char* file) {
          furnsh_c(file);
      }
      
    • 编译生成新的DLL(比如命名为cspice_wrapper.dll),放到Unity的Plugins目录,修改C#调用代码:
      [DllImport("cspice_wrapper")]
      public extern static void furnsh_c_wrapper(string file);
      
    • 该方式通过自定义DLL封装静态库功能,间接适配Unity的PInvoke机制。
  • 额外检查项

    • 确认静态库的编译架构为x64,与Unity设置的架构完全匹配,避免因架构不兼容导致加载失败。
    • 若使用方案二,确保C++工程的运行时库选项(如MT/MD)与Unity兼容,避免运行时CRT冲突。

内容的提问来源于stack exchange,提问作者Datri

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 04:27:10