Python论坛  - 讨论区

标题:[python-chinese] 把Python嵌入到C++应用程序中__参数传递问题(已解决)

2007年01月17日 星期三 09:06

玄利磊 kency在zctt.com.cn
星期三 一月 17 09:06:34 HKT 2007

 我把VC编译好的LIB库转换成了BCB能用的格式

可是同样的代码到BCB中 编译就出错

说是object_manager.hpp 文件中
 template 
struct object_manager_traits
    : mpl::if_c<
         is_handle::value
       , handle_object_manager_traits
       , default_object_manager_traits
    >::type
{
};

上面代码 Invalid template argument list
		Type name expected
		{ expected

等等 好多错误

>Message: 3
>Date: Tue, 16 Jan 2007 21:35:44 +0800
>From: " 刘鑫 " <march.liu在gmail.com>
>Subject: Re: [python-chinese]
>	把Python嵌入到C++应用程序中__参数传递问题(已解决)
>To: python-chinese在lists.python.cn
>Message-ID:
>	<d7bd4e1e0701160535w3e1bd0blc304f8c2e223ec17在mail.gmail.com>
>Content-Type: text/plain; charset="gb2312"
>
>这是一个老问题了,Boost::Python On Windows支持VC之外的编译器吗?当然支持,
>前提是你要在编译Boost时提供对应编译器编译的PythonXX.lib静态链接库,新版本的Python提供了Mingw/Cygnu所
>需的PythonXX.a。但是BCB的恐怕你要自己编译。
>
>2007/1/16, 玄利磊 <kency在zctt.com.cn>:
>>
>> 用boost.python库能解决了
>> 可惜我的程序都是用C++ Builder 写的
>> boost.python 不支持 C++ Builder
>>
>> 分享下解决的方法:
>>
>> #include python.hpp>
<i>>> #pragma comment(lib, "boost_python.lib")
>>
>> using namespace boost::python;
>>
>> class CppClass {
>> public:
>>         int a;
>>         CppClass():a(0){}
>>         int getNum()
>>         {
>>                 return a;
>>         }
>>         void setNum(int num)
>>         {
>>                 a = num;
>>         }
>>
>> };
>>
>>
>>
>> int main( int argc, char ** argv )
>> {
>>   try
>>   {
>>     Py_Initialize();
>>
>>     object main_module((
>>                 handle(borrowed(PyImport_AddModule("__main__")))));
>>
>>     object main_namespace = main_module.attr("__dict__");
>>
>>         main_namespace["CppClass"] = class_("CppClass")
>>                                .def("getNum",&CppClass;::getNum)
>>
>> .def("setNum",&CppClass;::setNum);
>>
>>         CppClass cpp;
>>         cpp.setNum(1);
>>
>>         main_namespace["pycpp"] = ptr(&cpp;);
>>
>>
>>
>>     handle ignored(( PyRun_String(  "print pycpp.getNum() \n",
>>                                       Py_file_input,
>>                                       main_namespace.ptr(),
>>                                       main_namespace.ptr() ) ));
>>
>>   }
>>   catch( error_already_set )
>>   {
>>     PyErr_Print();
>>   }
>>   return 0;
>> }
>>
>>
>>
>> >Message: 7
>> >Date: Mon, 15 Jan 2007 19:07:17 +0800
>> >From: " 玄利磊 " <kency在zctt.com.cn>
>> >Subject: [python-chinese]
>> >       把Python嵌入到C++应用程序中__参数传递问题
>> >To: "python-chinese" <python-chinese在lists.python.cn>
>> >Cc: xuanll <xuanll在zctt.com.cn>
>> >Message-ID: <200701151906513433193在zctt.com.cn>
>> >Content-Type: text/plain; charset="gb2312"
>> >
>> >用C++ 写的程序 现需要调用 python脚本进行数据处理
>> >使用下面函数:
>> >pargs = Py_BuildValue("(s)", cstr);
>> >PyEval_CallObject(pfunc, pargs);
>> >
>> >作为参数传递给 python 的只是些 string integer 等等
>> >
>> >现在需要 把一个 类 或 指针 传递给 python 该如何做啊?
>> >
>> >谢谢!!!
>> >
>>
>> _______________________________________________
>> python-chinese
>> Post: send python-chinese在lists.python.cn
>> Subscribe: send subscribe to python-chinese-request在lists.python.cn
>> Unsubscribe: send unsubscribe to  python-chinese-request在lists.python.cn
>> Detail Info: http://python.cn/mailman/listinfo/python-chinese
>
>
>
>
>-- 
>Blog搬家了
>
>刘鑫
>March.Liu
>-------------- 涓���ㄥ� --------------
>一个HTML附件被移除...
>URL: http://python.cn/pipermail/python-chinese/attachments/20070116/7b6b6f0c/attachment.html 
>


[导入自Mailman归档:http://www.zeuux.org/pipermail/zeuux-python]

如下红色区域有误,请重新填写。

    你的回复:

    请 登录 后回复。还没有在Zeuux哲思注册吗?现在 注册 !

    Zeuux © 2025

    京ICP备05028076号