分享

学习 Python与C相互调用 第2页

 钦泰 2015-01-08

自动化

  • 为了调用一个简单的 c 程序,需要写这么一个借口模块有时候确实感到挺麻烦的。怎么办呢,有没有工具生成这种接口呢?
  • swig (Simple Wrapper and Interface Generator)
  • sip (PyQt4采用)

  • boost.python
  • shiboken (PySide采用)

ctypes

  • ctypes 和上面的工具工作方式不同,它是Python的标准模块,似乎相当强大

调用 win32 的对话框

from ctypes import *
windll.user32.MessageBoxA(0, "great", 'hello world', 0)

调用 C 运行库中的 sin 函数

from ctypes import *
fun = cdll.msvcrt.sin
fun.argtypes = [c_double]
fun.restype = c_double
print fun(3.14159)

C 调用 Python

C调用Python,即将Python嵌入到C中。和前面的Python调用C相比,这个就显得复杂很多。

manual 的 一个简单例子:

#include <Python.h>

int main(int argc, char *argv[])
{
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print 'Today is',ctime(time())\n");
Py_Finalize();
return 0;
}

包含 头文件, 调用 Py_Initialize()和 Py_Finalize()函数,中间语句执行python语句

然后编译链接。

linux

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多