1. 程式人生 > 其它 >編譯C/C++為dll供Python呼叫

編譯C/C++為dll供Python呼叫

技術標籤:C++Python

首先寫一個簡單的lzb_add.c檔案如下:

#include <stdio.h>
int add_int(int, int);
float add_float(float, float);
int add_int(int num1, int num2) {
    return num1 + num2;
}
float add_float(float num1, float num2) {
    return num1 + num2;
}

然後將lzb_add.c編譯為lzb_add.dll檔案,方法如下:

首先要有gcc,然後命令列cd到c檔案目錄,執行下面命令,會在當前目錄生成一個lzb_add.dll檔案

gcc -shared -o lzb_add.dll .\lzb_add.c

有了這個dll檔案,就可以給Python使用了

from ctypes import *
adder = CDLL('./lzb_add.dll')
res_int = adder.add_int(4,5)
print("Sum of 4 and 5 = " + str(res_int))

a = c_float(5.5)
b = c_float(4.1)
add_float = adder.add_float
add_float.restype = c_float
print "Sum of 5.5 and 4.1 = ", str(add_float(a, b))

輸出:
Sum of 4 and 5 = 9
Sum of 5.5 and 4.1 = 9.600000381469727