Bonsoir, J’ai besoin d’executer une fonction c dans un code python. J’ai donc fait un simple essai avec :
function.c
int myfunc(int x) {
return x*10;
}
main.py
import ctypes
fun = ctypes.CDLL("mylib.dll")
fun.myfunction.argtypes(ctypes.c_int)
puis je compile function.c :
gcc -shared -o mylib.dll function.c
mais problème, windows ne semble pas reconnaitre mon dll, l’erreur en executant main.py :
Traceback (most recent call last):
File "C:/Users/Coco/Documents/-Nicolas/prog/python/__Tests/Cfunc/main.py", line 3, in <module>
fun = ctypes.CDLL("mylib.dll")
File "C:\Program Files\Python38\lib\ctypes\__init__.py", line 369, in __init__
self._handle = _dlopen(self._name, mode)
OSError: [WinError 193] %1 n’est pas une application Win32 valide
j’ai tenté de compiler avec l’option -m32, même resultat.
pour info, je suis sous windows 7, 64 bit.
la version de mon compilateur :
Using built-in specs.
COLLECT_GCC=gcc
COLLECT_LTO_WRAPPER=c:/mingw/bin/../libexec/gcc/mingw32/8.2.0/lto-wrapper.exe
Target: mingw32
Configured with: ../src/gcc-8.2.0/configure --build=x86_64-pc-linux-gnu --host=mingw32 --target=mingw32 --prefix=/mingw --disable-win32-registry --wit
h-arch=i586 --with-tune=generic --enable-languages=c,c++,objc,obj-c++,fortran,ada --with-pkgversion='MinGW.org GCC-8.2.0-3' --with-gmp=/mingw --with-m
pfr=/mingw --with-mpc=/mingw --enable-static --enable-shared --enable-threads --with-dwarf2 --disable-sjlj-exceptions --enable-version-specific-runtim
e-libs --with-libiconv-prefix=/mingw --with-libintl-prefix=/mingw --enable-libstdcxx-debug --with-isl=/mingw --enable-libgomp --disable-libvtv --enabl
e-nls --disable-build-format-warnings
Thread model: win32
gcc version 8.2.0 (MinGW.org GCC-8.2.0-3)
Si vous avez une explication je suis preneur, merci d’avance .
+0
-0