免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 1889 | 回复: 6
打印 上一主题 下一主题

又遇到问题了 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2008-11-22 21:12 |只看该作者 |倒序浏览
这段时间在做python在c++的嵌入,首先是用python写了一个脚本,这个脚本的功能是读出我自己建的一个xml文档,单独运行这个脚本,达到了要的效果。然后,我在vc6.0里面用到一个.c的程序,打算来调用这个脚本里面的函数,这个.c的源程序如下:(是从网上直接得到修改了的,感谢原作者)
#include<Python.h>
int main()
{
        Py_Initialize();
     PyObject * pModule = NULL;
     PyObject * pFunc = NULL;
     pModule =PyImport_ImportModule("test");//这是要调用的文件名,用来解析xml,即test.py,已经拷贝到了这个工程的文件夹下
     pFunc= PyObject_GetAttrString(pModule, "xmlparse");//这里是要调用的函数名,test.py里的唯一函数xmlparse,解析xml
     PyEval_CallObject(pFunc, NULL);//调用函数
     Py_Finalize();
     return 0;
}

这个程序编译也通过了,但是执行生成的.exe的时候,就会报错。是系统弹出的错误,让我关闭或者调试。一直没想明白,为什么单独执行脚本时可以,嵌入就会出问题?请高手帮忙看看。我用的python是2.5.2

论坛徽章:
0
2 [报告]
发表于 2008-11-22 22:34 |只看该作者
不知道是不是跟vc的版本有关?还是调试一下看吧

论坛徽章:
0
3 [报告]
发表于 2008-11-23 10:08 |只看该作者
我用mingw编译了一下文档上那个call例子没问题。

论坛徽章:
0
4 [报告]
发表于 2008-11-23 14:00 |只看该作者
VC那个编译器……不说也罢……

论坛徽章:
0
5 [报告]
发表于 2008-11-24 04:52 |只看该作者
搞了半天是因为python自带test模组优先级高于用户的,把test.py改名lz的例子就好了。

论坛徽章:
0
6 [报告]
发表于 2008-11-24 08:55 |只看该作者
最好别起名test,log之类的。。。。跟系统自带的重名。:wink:

论坛徽章:
0
7 [报告]
发表于 2008-11-25 14:57 |只看该作者

回复 楼上的帖子

楼上的说的对,我换了个名字再试了下,编译通过了,运行也没错。多谢各位!!

[ 本帖最后由 tochentao 于 2008-11-25 17:03 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP