一.准备工作:
下载Python源代码编译
到这里下载Python-2.5.1.tar.bz2(不到10M的样子,真少)。
解压,按照这里的方法编译、链接。
二.编写扩展:
1、启动Visual Studio.Net 2005,创建新工程 File -> New -> Project创建新工程
选择Visual C++ Projects/Win32/Win32 Project,输入工程名,如Windy,确定。
(确保工程目录与您刚下载的Python源代码文件里的PC,Include在同一个目
录下)。
2、启动向导,在Application Settings中选择"DLL"和 "Empty Project",确定。
3、添加模块文件,如Windy.c,模块源代码文件可以和模块名字不一样,这里
设为一样是为了一直,个人喜好而已。
static PyObject *
Windy_hello(PyObject * self, PyObject * args)
... {
printf("Hello, world ");
Py_INCREF(Py_None);
return Py_None;
}
static PyMethodDef Windy_methods[] = ... {
...{"hello", Windy_hello, METH_VARARGS, "hello() doc string"},
...{NULL, NULL}
} ;
PyMODINIT_FUNC
initWindy( void )
... {
Py_InitModule("Windy", Windy_methods);
}
4、选择Project -> Windy[工程名字] Properties,对工程属性做些小小的改动。
选择"C/C++"标签,在右边的"Addditional Include Directories"中添加如:
下内容:
../Include,../PC
选择"Linker"标签,在右边的"Additional library Directories"中添加如:
下内容:
../Include,../PC
应用设置。
5、从"Configuration"下拉列表中选择 "Release",在下边选择"Link"标签,
展开后选择"Input"标签,在右边的"Additional Dependencies"输入框中
添加python25.lib库。点击"C/C++"标签,选择"Code Generation",在
右边的"Runtime library"中选择"Multi-threaded DLL"。
6、从"Configuration"下拉列表中选择 "Debug",在下边选择"Link"标签,
展开后选择"Input"标签,在右边的"Additional Dependencies"输入框中
添加python25_d.lib库。点击"C/C++"标签,选择"Code Generation",在
右边的"Runtime library"中选择"Multi-threaded Debug DLL"。
7、编译链接。
注意:一般按照上面的步骤编译链接测试就应该可以成功了,不过我在我
的机子上楞是没成功,原因在于生成的DLL文件名字不对,将工程设置中
最后生成的DLL名字从
$(OutDir)/$(ProjectName).dll
改成:
$(OutDir)/$(ProjectName)_d.pyd
(以上为Debug模式的改法,Release模式请参照后做相应更改)
三.测试:
启动控制台cd到你的工程目录。
测试Debug模式的DLL:
OK,一个小小的测试已经搞定了,我们可以上路拉!:)
PS:为什么CSDN没有提供C/C++的代码模板啊?大多是些脚本语言的。