Python ctypes DLL stdout

时间:2014-04-28 19:54:08

标签: python ctypes

我使用ctypes从python调用DLL函数,只是我想从dll调用中捕获stdout。我想在不改变dll代码本身的情况下重定向很多printf。

我将如何做到这一点?

1 个答案:

答案 0 :(得分:1)

您似乎需要制作wrapper。尝试这样的事情:

char* CallSomeFunc()
{
    ostrstream ostr;
    cout.rdbuf(ostr.rdbuf());
    SomeFunc();
    char* s = ostr.str();
    return s;
}

您实际上需要使用该字符串执行不同的操作而不是返回它;我会把那部分留给你。字符串指针一返回就会变为无效,但只要在返回后释放内存,就可以进行相当简单的分配。