DLL становятся неспособными загрузить при вызове функции из другой библиотеки DLL - PullRequest
0 голосов
/ 18 декабря 2018

Теперь у меня есть проект 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

Я пробовал пару раз, поэтому я уверен, чтопроблема в линии.

я что-то не так сделал?

1 Ответ

0 голосов
/ 20 декабря 2018

Добавление также используемого dll-файла в каталог плагинов решает проблему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...