现在我有一个Unity(C#)项目,该项目从dll调用我的C ++项目。它们都工作正常,因此可以从Unity调用C ++函数。
但是,当我尝试添加一行来在C ++项目中调用函数另一个库(NLOpt库,来自另一个dll)时,生成的dll无法加载到Unity项目中。
插件.h
extern "C" __declspec(dllexport) bool __stdcall LoadData(int agent_num, int frame_num, float* data);
Plugin.cpp
#include "Plugin.h"
#include <nlopt.h>
__declspec(dllexport) bool __stdcall LoadData(int agent_num, int frame_num, float* d)
{
...
nlopt_opt opt = nlopt_create(NLOPT_LN_COBYLA, 3); //this line
}
当我在上面添加行时,Unity将出现以下错误:
Plugins: Failed to load 'Assets/Plugins/BirdOpti/BirdOpti.dll'
和
DllNotFoundException: Opti
我已经尝试了几次,所以我确定问题出在电话线上。
我做错了什么吗?
答案 0 :(得分:0)
还将使用过的dll文件添加到插件目录即可解决此问题。