Ошибка RunTime в Unity, когда я использую функцию из C ++ Dll - PullRequest
1 голос
/ 04 июля 2019

Я использую Dll, созданный из файла C ++. Когда я либо помещаю файлы .dll и .lib в папку проекта Unity, либо когда я использую нужную мне функцию, происходит сбой Unity и я не могу открыть проект, пока я удаляю .dll или удаляю функцию из c # сценарий.

Эта функция хорошо работает на C ++, как в Visual Studio, так и в Dev-C ++. PS: Assets / alzBraccioCorretto.json - это файл, который мне нужно прочитать

Я пробовал ту же процедуру для более простых dll, и она работала нормально, поэтому я не знаю, чего мне не хватает с этим.

В скрипте Unity я написал

[DllImport("QuartaLibreria.dll", CharSet = CharSet.Unicode)]

static extern int LeggiFile(string nomeFile);
Text testo;
unsafe void Start()
{
    testo = GetComponent<Text>();
    int temp = 0;
    temp = LeggiFile("Assets/alzBraccioCorretto.json");
    testo.text = temp.ToString();
}

В шапке библиотеки у меня есть

#define QUARTALIBRERIA_API __declspec(dllexport)

//all the other headers and #include

int converti_int(string frame);//returns reads a line and returns an int

int leggiFile(string nomeFile);

extern "C" {
QUARTALIBRERIA_API int LeggiFile(wstring nomeFile);
}

В cpp библиотеки у меня есть

int leggiFile(string nomeFile) {

ifstream _stream(nomeFile.c_str());
int temp;
_stream >> temp >> temp >> temp >> temp >> temp;
return temp;
}


QUARTALIBRERIA_API int LeggiFile(wstring nomeFile){
std::string str = std::string(nomeFile.begin(), nomeFile.end());
int daRit = leggiFile(str);
return daRit;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...