Мне нужно прочитать файл .json с ifstream из dll c ++, и мне нужно использовать эту dll в Unity. Я знаю, что есть проблема с Unicode и ASCII, но я не могу решить эту проблему
PS: я сделал convert_to_string самостоятельно, он извлекает int из определенной строки
В шапке Dll у меня есть:
int leggiCpp(string nomeFile);
extern "C" {
QUARTALIBRERIA_API int leggiCs(wstring nomeFile);
}
В CPP Dll у меня есть:
int leggiCpp(string nomeFile) {
ifstream _stream(nomeFile.c_str());
string temp;
_stream >> temp >> temp >> temp >> temp >> temp;
return convert_to_int(temp);
}
QUARTALIBRERIA_API int leggiCs(wstring nomeFile){
std::string str = std::string(nomeFile.begin(), nomeFile.end());
int daRit = leggiCpp(str);
return daRit;
}
В скрипте Unity у меня есть:
[DllImport("QuartaLibreria.dll", CharSet = CharSet.Unicode)]
static extern unsafe int leggiCs(string nomeFile);
// Start is called before the first frame update
unsafe void Start()
{
int temp = leggiCs("Assets/alzBraccioCorretto.json");
}
У меня нет ошибки компиляции, но программа Unity дает сбой и говорит: Runtime Error!
Программа: Это приложение запросило среду выполнения, чтобы завершить ее необычным способом.
Пожалуйста, обратитесь в службу поддержки приложения для получения дополнительной информации.