python调用python无法返回_c++调用python模块无法取得返回值

在C++程序中调用Python模块的'rec'函数时,遇到返回值为空的问题。尝试使用PyEval_CallObject调用并解析结果,但输出显示需要的值是空的。Python的'rec'函数涉及邮件处理,包括POP3连接、登录、邮件信息提取等操作。错误可能出现在Python脚本内部或C++与Python交互的过程中。
摘要由CSDN通过智能技术生成

在C++里调用python的rec模块

pFunc = PyObject_GetAttrString(mReceiveEmailModule, "rec");

result = PyEval_CallObject(pFunc, pArg);

PyArg_Parse(result,"s", &iresult);

cout << iresult << endl;

我打印的时候发现我需要的值是空的,神马回事?

python代码:

def rec(user,passwd,se,idx):

global html

global text

try:

try:

server=poplib.POP3(se)

except:

print "link to server failed, try again"

rec(user,passwd,se,idx)

try:

server.user(user)

server.pass_(passwd)

except:

print "POP3 server login failed, please check the user name and password"

return "2"

mailCount,size=server.stat()

print mailCount

print size

hdr,message,octet=server.retr(int(idx))

mail=email.message_from_string(string.join(message,'\n'))

subject=email.Header.decode_header(mail['subject'])[0][0]

subcode=email.Header.decode_header(mail['subject'])[0][1]

strr = subject

if subcode == None:

strr = subject

else:

strr = unicode(subject, subcode)

html += "subject:\t" + strr +"\n"

strr = email.utils.parseaddr(mail.get("from"))[1]

html += "from:\t" + strr + "\n"

strr = email.utils.parseaddr(mail.get("to"))[1]

html += "to:\t" + strr + "\n"

showmessage(mail)

server.quit()

print "success!"

except Exception, e:

print str(e)

return "1"

print "*************"

return html

作者: zhyajshhz

发布时间: 2011-07-18

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值