Я использую 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;
}