征服python.docVIP

  1. 1、本文档共22页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第8章? Python扩展和嵌入 由于Python是解释性的脚本语言,执行速度较慢。在某些需要提高脚本执行效率的情况下,可以考虑扩展Python,用C/C++来完成对效率要求高的部分。另外,由于Python功能强大,完全可以将其嵌入到C/C++中,以简化程序,减少代码。 8.1? 扩展Python Python提供了支持C/C++接口,可以方便地使用C/C++来扩展Python。用C/C++编写的Python扩展主要用于完成底层的系统操作,以及提高执行速度等。 8.1.1? 扩展概述 Python提供了接口API,通过使用API函数可以编写Python扩展。在Windows下可以使用VC来编译Python扩展。在UNIX和Linux下则可以使用gcc来编译。 1.设置编程环境 使用VC时需要设置一些头文件以及库文件的包含目录。如果使用VC++ 6.0,则设置过程如下所示。 (1)单击【Tools】|【Options】命令,弹出如图8-1所示的对话框。 (2)单击【Directories】标签,选择【Show directories for】下拉列表框中的【Include files】项,将Python安装目录下的INCLUDE目录添加到【Directories】列表中,如图8-2所示。 (3)选择【Show directories for】下拉列表框中的【Library files】项,将Python安装目录下的LIBS目录添加到【Directories】列表中,如图8-3所示。 (4)单击【OK】按钮完成操作。 如果使用Visual Studio 2005,则设置过程如下所示。 (1)单击【工具】|【选项】命令,弹出如图8-4所示的对话框。 (2)双击左侧列表树中的【项目和解决方案】项,选择【VC++目录】项,如图8-5所示。 (3)选择【显示以下内容的目录】下拉列表框中的【包含文件】项,将Python安装目录下的include目录添加到列表中,如图8-6所示。 图8-1? Options对话框 图8-2? 添加头文件 ?图8-3? 添加库文件 图8-4? 选项对话框 ?? 图8-5? 设置VC++目录 图8-6? 添加头文件 ???????? (4)选择【显示以下内容的目录】下拉列表框中的【库文件】项,将Python安装目录下的libs目录添加到列表中,如图8-7所示。 (5)单击【确定】按钮完成操作。 图8-7? 添加库文件 ? 2.创建工程 在Visual C++ 6.0中创建Python扩展过程如下所示。 (1)单击【File】|【New】命令,弹出创建工程对话框。单击【Projects】标签,选择左侧列表中的【Win32 Dynamic-Link Library】项,在【Project name】文本框中输入工程名“myext”,如图8-8所示。 (2)单击【OK】按钮,弹出如图8-9所示的工程设置对话框。选中【An empty DLL project.】单选框。 图8-8? 创建工程对话框 ? 图8-9? 工程设置对话框 (3)单击【Finish】按钮弹出如图8-10所示的确认对话框。单击【OK】按钮完成工程创建。 (4)单击【File】|【New】命令弹出创建文件对话框,单击【Files】标签。选择左侧列表中的【C++ Source File】项,在【File】文本框中输入文件名“myext.c”,如图8-11所示。 图8-10? 确认对话框?? 图8-11? 添加文件 ? (5)单击【OK】按钮,在“myext.c”中添加如下内容。 #include #include PyObject *show(PyObject *self, PyObject *args) { char *message; const char *title = NULL; HWND hwnd = NULL; int r; if (!PyArg_ParseTuple(args, iss, hwnd, message, title)) return NULL; r = MessageBox(hwnd,message, title, MB_OK); return Py_BuildValue(i, r); } static PyMethodDef myextMethods[] = { {show, show, METH_VARARGS,show a messagebox}, {NULL,NULL} }; PyMODINIT_FUNC initmyext() { PyObject *mod; mod = Py_InitModul

文档评论(0)

***** + 关注
实名认证
文档贡献者

本账号下所有文档分享可拿50%收益 欢迎分享

1亿VIP精品文档

相关文档