Как я могу использовать ifstream из моей c ++ Dll в моем проекте Unity? - PullRequest
0 голосов
/ 07 июля 2019

Мне нужно прочитать файл .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!

Программа: Это приложение запросило среду выполнения, чтобы завершить ее необычным способом. Пожалуйста, обратитесь в службу поддержки приложения для получения дополнительной информации.

...