首页 > 解决方案 > 如何在 Python 中调用 C 代码来进行两种语言的交互?

问题描述

我正在做一个项目,我试图在其中进行交互 C 代码和 Python。这意味着我想在 Python 中调用 C 代码。我用谷歌搜索了它,但解决方案对我来说是无法理解的。

有什么方法可以做到这一点?

标签: pythonc

解决方案


您必须将您的 c 代码编译为共享库,并且您将能够使用 python 的ctypesAPI 调用函数。这是一个关于如何做到这一点的简单示例。

库文件

__declspec(dllexport) int add(int a, int b);

int add(int a, int b) {
    return a + b;
}

编译(这里使用 msvc)

cl /LD lib.c

应用程序.py

from ctypes import *
lib = cdll.LoadLibrary('lib.dll')
print(lib.add(1, 2))  ## this will print 3

有关更多信息,请参阅:
https ://docs.python.org/3/library/ctypes.html
如何使用 Python 中的 DLL 文件?
https://www.youtube.com/watch?v=p_LUzwylf-Y&t=277s


推荐阅读