boost 1.34 终于简化了内嵌python的支持

boost 1.34 终于简化了内嵌python的支持。
还支持了python2.5。
在中文windows下用vc8编译boost的过程中,虽然仍有代码页字符警告,但是可以正常编译成功,不再象1.33.1那样造成正则表达式库不修改源码不能够编译通过的问题了。

下面的例子是从boost文档中来的:
#include <iostream>
#include 
<string>
#include 
<boost/python.hpp>
#include 
<boost/ref.hpp>
#include 
<vector>
using namespace boost::python;

void greet()
{
    
object main = import("__main__");
    
object global(main.attr("__dict__"));

    
// Define greet function in Python.
    object result = exec(
        
"def greet(a):               \n"
        
"   return 'Hello %s from Python!' % a \n",
        global, global);

    
object greet = global["greet"];

    list lst;
    lst.append(
1);
    lst.append(
2);

    
object r = greet(lst);

    std::
string message = extract<std::string>(r);
    std::cout 
<< message << std::endl;
}

int _tmain(int argc, _TCHAR* argv[])
{
    Py_Initialize();
    greet();
    system(
"Pause");
    
return 0;
}



posted @ 2007-05-23 12:55 沐枫 阅读(...) 评论(...) 编辑 收藏