C ++回调 - 与Python一起使用时出现问题

时间:2016-06-06 09:33:57

标签: python c++ callback

A有一个具有以下设计的程序:

<ion-view>
    <ion-nav-title>
            <img alt="Company Logo1" height="40" src="img/logo-07.png">
            <img alt="Company Logo2" height="40" src="img/logo-08.png">
    </ion-nav-title>
</ion-view>

我正在创建Processing对象和Callback对象。 Processing :: run methon在循环中运行,并且不时从Processing :: setCallback方法中的对象集执行Callback :: log方法。这很好用:

class Callback {
    void log(std::string text) {
        (...)
    }
}

class Processing {
    void setCallback(Callback* c) {
        cb = c;
    }

    void run() {
        (...)
        if (cb)
            cb.log("text");
        (...)
    }
    Callback* cb;
}

现在我导出了这些类,并使用Boost :: Python创建了Python模块,以便从Python运行此代码。这也很好:

int main() {
    Callback cb;
    Processing pp;
    pp.setCallback(&cb);
    pp.run;
}

当我想创建多个Processing对象时出现问题:

callback = module.Callback()
processing = module.Processing()
processing.setCallback(callback)
processing.run()

第二个Processing对象调用Callback :: log方法时出现崩溃和分段错误。我检查了所有回调和处理对象似乎正确创建并具有不同的地址。 类比示例(许多对象),但是编写的C ++工作正常。

知道可能是什么问题吗?

0 个答案:

没有答案