Matlab runtime initialization from Python using ctypes

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 个评论

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.
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.

请先登录,再进行评论。

回答(0 个)

类别

帮助中心File Exchange 中查找有关 Call Python from MATLAB 的更多信息

产品

版本

R2018b

Community Treasure Hunt

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

Start Hunting!

Translated by