Expression: is_block_type_valid(header->block_use)

VS2015 openmesh read_mesh 读取网格时,这样一段代码

void CPathFace::test2()
{
    string file = ".\data\face\face_forehead.obj";
    MyMesh mesh;
    if (!OpenMesh::IO::read_mesh(mesh, file))
    {
        std::cerr << "Cannot open mesh to file" << std::endl;
        exit(1);
    }
}

release模式下没问题。

debug 模式下,报 Debug Assertion Failed! Expression: is_block_type_valid(header->block_use)

具体如下错误:

image

但如果将mesh定义为MyMesh指针类型,即

void CPathFace::test2()
{
    string file = ".\data\face\face_forehead.obj";
    MyMesh *mesh = new MyMesh;
    if (!OpenMesh::IO::read_mesh(*mesh, file))
    {
        std::cerr << "Cannot open mesh to file" << std::endl;
        exit(1);
    }
}

则debug和release模式下都没问题。

bug算是解决了,但具体原因还是没搞清。

原文地址:https://www.cnblogs.com/VVingerfly/p/5743584.html