Search code examples
c++opencascade

Could not found the resource definition:BinOcaf.StoragePlugin?


I have the following code, and can be compiled, but when I run it, it fails with error of missing resource. I have checked the cascade installer and everything is clicked and installed. How could I fix this?

#include <TDocStd_Application.hxx> 
#include <TDataStd_Integer.hxx>

int main()
{
    Handle(TDocStd_Application) app = new TDocStd_Application;

    Handle(TDocStd_Document) doc;
    app->NewDocument("BinOcaf", doc);
    
    if (doc.IsNull())
    {
        std::cout << "Error: cannot create an OCAF document." << std::endl;
        return 1;
    }

    // to access the main label, the transient data framework
    TDF_Label mainLab = doc->Main();

    // attach some integer value to this label
    TDataStd_Integer::Set(mainLab, 1002);
    
    // save document to file
    PCDM_StoreStatus sstatus = app->SaveAs(doc, "C:/Users/Administrator/Desktop/test.cbf");
                                                                                     
    if (sstatus != PCDM_SS_OK)
    {
        app->Close(doc);
        std::cout << "cannot write OCAF document." << std::endl;
        return 1;
    }                                                            
    // release the data of doc
    app->Close(doc);

    return 0;
}


Solution

  • Ok, so after some head scratching I realized one thing. Forgot to define format. just add the line of code to the main function would fix the problem.

    BinDrivers::DefineFormate(app);