Теперь у меня есть проект Unity (C #), который вызывает мой проект C ++ из DLL.Они оба работали нормально, так как вызывали функции C ++ из Unity.
Однако, когда я пытаюсь добавить одну строку , чтобы вызвать функцию другой библиотеки (библиотека NLOpt, из другой библиотеки DLL) в C ++проекта, сгенерированная dll становится неспособной быть загруженной в проекте Unity.
Plugin.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
Я пробовал пару раз, поэтому я уверен, чтопроблема в линии.
я что-то не так сделал?