我的独立博客——不沉之月

使用Visual Studio 2008开发Python的C++扩展之准备步骤

  1. 在Visual Studio 2008的菜单 工具->选项,项目与解决方案->VC++目录,右边选择“包含文件”,添加Python安装路径里面的include目录;选择“库文件”,添加Python安装路径里面的libs目录
  2. 新建项目,项目类型选择C++的MFC DLL。注意项目名要全小写(其实只要最后生成的dll是全小写就可以了,这里为了方便起见)。这里举例项目名为"pytest"
  3. 删除除了"pytest.{cpp, h}"以外的所有.h 和.cpp
  4. 打开"pytest.h",删除所有东西。输入"include <Python.h>"
  5. 打开"pytest.cpp",删除所有东西除了include <pytest.h>这句
  6. 右击项目->属性,配置属性->C/C++->预编译头,将“创建/使用预编译头”选项设为“不使用预编译头”
  7. 继续在项目属性窗口,配置属性->链接器->输入,将“模块定义文件”的值删除;配置属性->链接器->常规,把“输出文件”的值中的"dll"替换为"pyd"

在pytest.cpp中插入以下代码模板:

 

代码
static PyObject*
invoke(PyObject 
*self, PyObject *args)
{
    
char* cmdName, *dllName;

    PyObject 
*paraList;
        
//example
    if(!PyArg_ParseTuple(args, "ssO"&dllName, &cmdName,&paraList)) //ParseTuple will raise error when parse fails
        return NULL;
    
else
    {

    }

    
}



static PyMethodDef pytest_methods[] = {
    {
"invoke", invoke, METH_VARARGS, "Invoke the function in DLL"},
    {NULL, NULL, 
0, NULL}
};

PyMODINIT_FUNC initpytest()
{
    Py_InitModule(
"pytest", pytest_methods);
}

 

 

posted on 2009-12-31 23:19  vls  阅读(1529)  评论(0编辑  收藏  举报