如何在dll接口函数中返回Eigen Matrix

时间:2017-02-18 10:43:12

标签: c++ eigen

考虑如下所示的类,其中API指示导出的函数:

    class A
    {
        std::vector<Eigen::MatrixXd> C;
    public:
        Eigen::MatrixXd getMatrix(int i) { return C[i]; }
        //assume C always has enough elements to return
    }
    //Then a function from exe access the above as following
    void foo(){
        A a(); //assume something is generated in a.C
        {
            Eigen::MatrixXd c = a.getMatrix(10);
        }
        checkHeap(); //heap corruption detected
    }

如何在不从dll堆边界问题中获取错误的情况下正确返回矩阵。

编辑:结果是派生类有一个虚拟重写函数,它返回一个非临时矩阵。编辑问题以反映这一点。 EDIT2:发现test exe和dll之间的构建参数不一致,导致出现此错误。现在已修复。

0 个答案:

没有答案