Как можно импортировать c++ функцию из dll с помощью ctypes и можно ли?
Есть код на c++ ( lib1.cpp
), скомпилированный в dll файл ( lib1.dll
), также python код ( main.py
). Для компиляции dll файла использован g++ mingw 12.2.0
. Использую Windows 10
Код компиляции:
g++ -shared -o lib1.dll lib1.cpp
main.py :
import ctypes
lib=ctypes.CDLL("lib1.dll",winmode=0)
lib.print("Hello")
lib1.cpp :
#include <iostream>
using namespace std;
extern "C" {
void print(string st);
}
void print(string st){
cout<<st;
}
Я видел в решении похожей задаче на английской версии сайта, там использовался extern
. В моем случае он не помог. При попытке запустить функцию print
, я получаю ошибку
AttributeError: function 'print' not found
Как можно подключить функцию и можно ли? Если нет, то почему в этом случае всё получилось?
PS: Немного исправил код lib1.cpp