Many member functions of FBX classes may trigger an error. In such a case:
The following code appears in Common/Common.cxx. It illustrates the error-handling procedure for a file import operation, including password protection. Some code has been replaced by "// ..." to emphasize the error-handling functionality.
bool LoadScene(KFbxSdkManager* pSdkManager, KFbxDocument* pScene, const char* pFilename) { // ... bool lStatus; char lPassword[1024]; // ... // Create an importer. KFbxImporter* lImporter = KFbxImporter::Create(pSdkManager,""); // Initialize the importer by providing a filename. const bool lImportStatus = lImporter->Initialize(pFilename, -1, pSdkManager->GetIOSettings()); // ... if(!lImportStatus) { printf("Call to KFbxImporter::Initialize() failed.\n"); printf("Error returned: %s\n\n", lImporter->GetLastErrorString()); if (lImporter->GetLastErrorID() == KFbxIO::eFILE_VERSION_NOT_SUPPORTED_YET || lImporter->GetLastErrorID() == KFbxIO::eFILE_VERSION_NOT_SUPPORTED_ANYMORE) { // ... Print an error message ... } return false; } // ... // Import the scene. lStatus = lImporter->Import(pScene); if(lStatus == false && lImporter->GetLastErrorID() == KFbxIO::ePASSWORD_ERROR) { printf("Please enter password: "); lPassword[0] = '\0'; scanf("%s", lPassword); KString lString(lPassword); (*(pSdkManager->GetIOSettings())).SetStringProp(IMP_FBX_PASSWORD, lString); (*(pSdkManager->GetIOSettings())).SetBoolProp(IMP_FBX_PASSWORD_ENABLE, true); lStatus = lImporter->Import(pScene); if(lStatus == false && lImporter->GetLastErrorID() == KFbxIO::ePASSWORD_ERROR) { printf("\nPassword is wrong, import aborted.\n"); } } // Destroy the importer. lImporter->Destroy(); return lStatus; }