Cpp Python通信初探
初衷
    游戏服务端比较流行的组合是cpp+lua,似乎是从云风dalao的skynet开始的,不过相对来说我更喜欢python,而且现在工作也用的是python,所以毫无疑问,用python必须的.作为将来拥有自己的服务端计划的一环,先初探一下他们之间的通信
工具环境
- visual studio 2013
- Python 2.7.12
创建工程添加依赖
- 如果需要在Debug环境下运行程序,得先对Python做一些处理 - 把%PythonRoot%/libs/Python27.dll拷贝一份改名为Python27_d.dll,为Debug所用
- 修改%PythonRoot%/Libs/Pyconfig.h,搜索#define Py_DEBUG注释掉此行,因为Debug模式下有些宏在python27.dll里面是没有的
 
- 把
- 用vs创建一个空程,进入工程属性 - 如果你的python是32位,无视这步; 点击配置管理器,活动解决方案平台/新建 x64平台,用于跑64位python: 
- CC++/常规/附加包含目录 -> ‘%PythonRoot%/include/‘ 把python安装目录下的include包含进去 
- 链接器/常规/附加库目录 -> %PythonRoot%/libs/把python安装目录下的libs库包含进去 
- 创建main.cpp
 
- 如果你的
入门代码
先写一份first.py代码,我放在与main.cpp相同目录下
main.cpp中如下代码
结果是:
在first.py中定义了两个函数,一个是传入字符串返回一个字符串,一个是传入ab返回a+b。
main.cpp中先Py_initialize()如果成功了,先调用一个简单串,相当于在py环境下输入这句话,然后分别调用了py中的两个函数
有了注释我想应该很容易看懂了
- 包含Python.h头文件
- 从Py_Initialze()开始,到Py_Finalized()结束
- 一切对象都是PyObject*//我用了auto
- 空参数时传null
over.入门还是挺简单的.
python 调用cpp
转swig