Matlab runtime initialization from Python using ctypes

7 ビュー (過去 30 日間)
Alexandros Kessanopoulos
Alexandros Kessanopoulos 2019 年 7 月 24 日
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 件のコメント
Shubham Kashyap
Shubham Kashyap 2020 年 4 月 8 日
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 2020 年 4 月 8 日
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 件)

カテゴリ

Help Center および File ExchangeCall 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