Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/135.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
stringstream不使用通过托管C#代码调用的本机库函数中的整数类型_C#_C++_Unity3d_Iostream_Libstdc++ - Fatal编程技术网

stringstream不使用通过托管C#代码调用的本机库函数中的整数类型

stringstream不使用通过托管C#代码调用的本机库函数中的整数类型,c#,c++,unity3d,iostream,libstdc++,C#,C++,Unity3d,Iostream,Libstdc++,我知道下面的信息可能不够充分,但我确实需要一些帮助,至少需要检查什么才能更好地理解问题。这真的很奇怪,我不知道怎么处理 我正在尝试运行第三方本机代码,该代码出于某些目的使用stringstream。指定了外部C链接约定。库是复杂的,与其他库连接,既有C又有C++代码。 在Linux(Ubuntu18.04)上,通过dlopen和dlsym从C#调用此代码 现在是棘手的部分。当我构建C#Console应用程序并运行它时,一切都正常工作。当我使用相同的本机库和DLL并从Unity3D运行所有内容时,

我知道下面的信息可能不够充分,但我确实需要一些帮助,至少需要检查什么才能更好地理解问题。这真的很奇怪,我不知道怎么处理

我正在尝试运行第三方本机代码,该代码出于某些目的使用
stringstream
。指定了
外部C
链接约定。库是复杂的,与其他库连接,既有C又有C++代码。 在Linux(Ubuntu18.04)上,通过
dlopen
dlsym
从C#调用此代码

现在是棘手的部分。当我构建C#Console应用程序并运行它时,一切都正常工作。当我使用相同的本机库和DLL并从Unity3D运行所有内容时,会出现崩溃。相同的本机代码正在运行(我想调用上下文/环境会有所不同)

我跟踪了Unity3D案例中stringstreams“不工作”的崩溃情况。在这两种情况下,在本机库中调用相同的代码

最小代码:

    std::stringstream ss;
    int a = 5;
    ss << a;
    std::string s1 = ss.str();
    fprintf(stderr, "STREAM: %s\n", s1.c_str());
std::stringstream-ss;
INTA=5;

可能是区域设置问题吗?区域设置不同,但我只是检查了一下,使它们相同。它不会改变错误。这是int类型的一个问题,因此我认为区域设置并不重要。区域设置用于将整数转换为字符串,如果区域设置输出流运算符出现问题,则可能会失败。我正在尝试确定为什么会出现这种情况。有什么线索吗?我现在正在研究各个方面。检查int类型的最佳方法是什么?那么。。确实有问题,谢谢你的提示。我仍然不知道如何修复它,但我知道Unity3D运行中缺少多个方面(实际上,只有两个方面存在),而不是正常运行。可能是区域设置问题?区域设置不同,但我只是检查了一下,使它们相同。它不会改变错误。这是int类型的一个问题,因此我认为区域设置并不重要。区域设置用于将整数转换为字符串,如果区域设置输出流运算符出现问题,则可能会失败。我正在尝试确定为什么会出现这种情况。有什么线索吗?我现在正在研究各个方面。检查int类型的最佳方法是什么?那么。。确实有问题,谢谢你的提示。我仍然不知道如何修复它,但我知道Unity3D运行中缺少多个方面(实际上,只有两个方面存在),而不是正常运行。