Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/153.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
C++ FbxManager错误Efailure和意外的文件类型错误_C++_Import_Fbx - Fatal编程技术网

C++ FbxManager错误Efailure和意外的文件类型错误

C++ FbxManager错误Efailure和意外的文件类型错误,c++,import,fbx,C++,Import,Fbx,我的FbxImporter无法初始化时出现问题。调用GetStatus.GetErrorString()时返回的ErrorString是“意外的文件类型”。状态的错误代码为EFAILUE(在查找此项后,autodesk表示它已失败)。我尝试过许多不同的fbx文件,但似乎都不起作用。此外,我已经将它们包括在VisualStudio项目中,甚至包括在可执行文件中(我知道这不是原因,因为其他文件加载得很好)。环顾四周,真的没有论坛帖子或任何帮助我解决问题的东西 这是我的导入程序代码的一个片段 //se

我的FbxImporter无法初始化时出现问题。调用GetStatus.GetErrorString()时返回的ErrorString是“意外的文件类型”。状态的错误代码为EFAILUE(在查找此项后,autodesk表示它已失败)。我尝试过许多不同的fbx文件,但似乎都不起作用。此外,我已经将它们包括在VisualStudio项目中,甚至包括在可执行文件中(我知道这不是原因,因为其他文件加载得很好)。环顾四周,真的没有论坛帖子或任何帮助我解决问题的东西

这是我的导入程序代码的一个片段

//set up the fbxmanager
    FbxManager* fbxManager = FbxManager::Create();

    //set the settings for the manager
    FbxIOSettings* ioSettings = FbxIOSettings::Create(fbxManager, IOSROOT);
    fbxManager->SetIOSettings(ioSettings);


    //set the settings for the fbx io settings
    //create and init the importer
    FbxImporter *importer = FbxImporter::Create(fbxManager,"");

    //create and init the scene
    FbxScene* fbxScene = FbxScene::Create(fbxManager, "");

    //init the importer
    result = importer->Initialize(filename,-1, fbxManager->GetIOSettings());
    if (!result)
    {
        string error = importer->GetStatus().GetErrorString();
        FbxStatus status = importer->GetStatus().GetCode();
        return false;
    }

如果我需要澄清问题,或者您需要更多信息来回答我的问题,请说出来,谢谢。

我想知道如何解决它

有两种类型的FBX文件

  • 二进制FBX
  • ASCII FBX
  • 无论你什么时候想做

    importer->Initialize(filename,-1, fbxManager->GetIOSettings());
    
    对于二进制FBX,它会导致“意外的文件类型”。
    但是,如果通过将二进制FBX转换为ASCII FBX,则程序将能够读取该文件


    附:示例程序可以读取二进制FBX。我认为FBX有一个不同的版本,它会导致兼容性问题。

    您使用的是WinRT API吗?我在一个通用应用程序项目中使用它时遇到了同样的问题。不,我没有使用通用应用程序项目或winRT api。只有win api和dx 110