Laravel  
laravel
文档
数据库
架构
入门
php技术
    
Laravelphp
laravel / php / java / vue / mysql / linux / python / javascript / html / css / c++ / c#

python调用c++

作者:浮云过影   发布日期:2026-05-09   浏览:64

# 使用 ctypes 调用 C++ 编写的共享库

# 首先,确保你有一个编译好的 C++ 共享库(.dll 或 .so 文件),并且该库导出了一个可以被 Python 调用的函数。

# 假设我们有一个名为 `example.cpp` 的 C++ 文件,内容如下:
"""
// example.cpp
extern "C" {
    __declspec(dllexport) int add(int a, int b) {
        return a + b;
    }
}
"""

# 编译这个 C++ 文件为共享库(例如,在 Windows 上生成 example.dll,在 Linux 上生成 libexample.so)。

# 然后在 Python 中使用 ctypes 来调用这个共享库:

import ctypes

# 加载共享库
# 如果是 Windows,假设 DLL 文件路径为 'example.dll'
# 如果是 Linux,假设 SO 文件路径为 'libexample.so'
lib = ctypes.CDLL('./example.dll')  # 或者 './libexample.so'

# 定义函数参数类型和返回值类型
lib.add.argtypes = (ctypes.c_int, ctypes.c_int)
lib.add.restype = ctypes.c_int

# 调用 C++ 函数
result = lib.add(3, 4)
print(f"Result of add(3, 4): {result}")

解释说明:

  1. C++ 文件 (example.cpp):定义了一个简单的 add 函数,并使用 extern "C"__declspec(dllexport) 来确保函数名不会被 C++ 编译器修饰(mangled),从而可以在 Python 中正确调用。
  2. 编译 C++ 文件:需要将 C++ 文件编译成共享库(Windows 上是 .dll 文件,Linux 上是 .so 文件)。你可以使用编译器如 g++cl 来完成这一步。
  3. Python 代码:使用 ctypes 模块加载共享库,并定义函数的参数类型和返回值类型。然后可以直接调用 C++ 中定义的函数。

上一篇:python注释方式

下一篇:python中的for循环

大家都在看

python 二维码识别

python excel 库

python时间格式

pythoneval函数用法

列表切片操作python

python读取文件路径

staticmethod在python中有

python 保存json文件

python的assert基本用法

python开发windows应用程序

Laravel PHP 深圳智简公司。版权所有©2023-2043 LaravelPHP 粤ICP备2021048745号-3

Laravel 中文站