使用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);
}

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章