Matlab runtime initialization from Python using ctypes

6 vues (au cours des 30 derniers jours)
Alexandros Kessanopoulos
Alexandros Kessanopoulos le 24 Juil 2019
Hello,
I am trying to use a c dll that is created with Matlab Compiler SDK from python using the ctypes module.
The first step is to call the mclInitializeApplication function but that fails.
Here is a python snippet:
import ctypes
mclbase_dll = ctypes.cdll.LoadLibrary('mclbase.dll')
mclInitializeApplication = mclbase_dll.mclInitializeApplication
clInitializeApplication.argtypes = [ctypes.POINTER(ctypes.c_char_p),ctypes.c_size_t]
clInitializeApplication.restype = ctypes.c_bool
ptr = ctypes.c_char_p()
b = mclInitializeApplication(ctypes.byref(ptr),0)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
OSError: [WinError -529697949] Windows Error 0xe06d7363
Is this possible at all to use matlab runtime from python using ctypes or I am doing something wrong here?
Thank you
  2 commentaires
Shubham Kashyap
Shubham Kashyap le 8 Avr 2020
The genearted .dll from C/C++ will not work with python. But Matlab compiler SDK have a python target. I recommend using that to call python.
>>web(fullfile(docroot, 'compiler_sdk/python_packages.html'))
The generated .dll don't have native C interface. For this to work you need to create a wrapper around the actual .dll. Refer here.
Alexandros Kessanopoulos
Alexandros Kessanopoulos le 8 Avr 2020
Thanks for the comment. I have done this procedure and created the wrapper so from python I intend to call the wrapper function/dll which has a native api and not the matlab compiler sdk generated one.
If you notice my snippet above the python call (using ctypes) fails at the application initialization itself where function's api is native C and not at the function call.

Connectez-vous pour commenter.

Réponses (0)

Catégories

En savoir plus sur Call Python from MATLAB dans Help Center et File Exchange

Produits


Version

R2018b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by