如何在Unity项目中使用c ++ Dll中的ifstream?

时间:2019-07-07 10:11:49

标签: c# c++ unity3d dll fstream

我必须从c ++ dll中读取带有ifstream的.json文件,并且需要在Unity中使用该dll。我知道Unicode和ASCII存在问题,但是我无法解决此问题 PS:我自己制作了convert_to_string,它从某个字符串中提取了一个整数

在Dll的标题中,我有:

int leggiCpp(string nomeFile);

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

在Dll的cpp中,我有:

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程序崩溃并说:运行时错误!

程序:该应用程序已请求运行时以一种异常方式终止它。 请联系应用程序的支持团队以获取更多信息。

0 个答案:

没有答案