- 在Visual Studio 2008的菜單 工具->選項,項目與解決方案->VC++目錄,右邊選擇“包含文件”,添加Python安裝路徑裏面的include目錄;選擇“庫文件”,添加Python安裝路徑裏面的libs目錄
- 新建項目,項目類型選擇C++的MFC DLL。注意項目名要全小寫(其實只要最後生成的dll是全小寫就可以了,這裏爲了方便起見)。這裏舉例項目名爲"pytest"
- 刪除除了"pytest.{cpp, h}"以外的所有.h 和.cpp
- 打開"pytest.h",刪除所有東西。輸入"include <Python.h>"
- 打開"pytest.cpp",刪除所有東西除了include <pytest.h>這句
- 右擊項目->屬性,配置屬性->C/C++->預編譯頭,將“創建/使用預編譯頭”選項設爲“不使用預編譯頭”
- 繼續在項目屬性窗口,配置屬性->鏈接器->輸入,將“模塊定義文件”的值刪除;配置屬性->鏈接器->常規,把“輸出文件”的值中的"dll"替換爲"pyd"
在pytest.cpp中插入以下代碼模板:
invoke(PyObject *self, PyObject *args)
{
char* cmdName, *dllName;
PyObject *paraList;
//example
if(!PyArg_ParseTuple(args, "ssO", &dllName, &cmdName,¶List)) //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);
}