加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

Python调用DLL并返回char *字符串

(2013-01-24 18:02:02)
标签:

地址

字符串

函数

python

dll

it

分类: 奋斗
    以Py3000为例,测试DLL中有如下函数:
extern "C" __declspec(dllexport) char * TestTest (void)
{
    return "Hello Huanhuan!";
}

    在Python中可以这样调用:
import ctypes
dll = ctypes.CDLL('Test.dll')
rst = dll.TestTest()
print(rst)
size = -1
rst = ctypes.string_at(rst, size)
print(rst.decode('utf-8'))

    执行后看到结果为:
1762918400
Hello Huanhuan!

    第一行为一串数字,第二行才是想要的结果,因为通过这种方法直接返回的是字符串的地址,通过ctypes.string_at()可返回字符串内容。

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有