在Python中生成動態(tài)鏈接庫(DLL)需要使用C擴展來實現(xiàn)。C擴展允許在Python中調(diào)用C或C++代碼,并將其編譯為動態(tài)鏈接庫。以下是一個簡單的步驟來生成一個動態(tài)鏈接庫:
python setup.py install
以下是一個簡單的示例,說明如何使用C擴展生成一個動態(tài)鏈接庫:
#include <Python.h>
static PyObject* add_numbers(PyObject* self, PyObject* args) {
int num1, num2;
if (!PyArg_ParseTuple(args, "ii", &num1, &num2)) {
return NULL;
}
int sum = num1 + num2;
return Py_BuildValue("i", sum);
}
static PyMethodDef example_methods[] = {
{"add_numbers", add_numbers, METH_VARARGS, "Add two numbers."},
{NULL, NULL, 0, NULL}
};
PyMODINIT_FUNC PyInit_example(void) {
return PyModule_Create(&example_module);
}
from distutils.core import setup, Extension
module = Extension('example', sources=['example.c'])
setup(name='example', version='1.0', ext_modules=[module])
python setup.py install
編譯和安裝完成后,你可以在Python中導(dǎo)入并使用動態(tài)鏈接庫:
import example
result = example.add_numbers(3, 4)
print(result) # Output: 7
這只是一個簡單的示例,你可以根據(jù)自己的需求來編寫更復(fù)雜的C擴展。如果你需要更詳細的說明和示例,請查閱Python官方文檔中關(guān)于C擴展的部分。