How to pass python "byte" param to python interface called from matlab ?

  1. python call interface from c++ dll
  2. the input data type of interface is unsigned char*
  3. python use bytes object(b'\x10') to pass param to dll interface
  4. how matlab?

回答 (1 件)

Rushikesh
Rushikesh 2024 年 9 月 18 日
Hello @烨,
I understand that you wish to call an interface from a C++ DLL in MATLAB, which requires an unsigned char* as input data. As you mentioned, in Python, we can use the bytes data type, which is compatible with the unsigned char* data type in C++. You can achieve similar functionality in MATLAB using two approaches:
  1. C++ uses unsigned char* for binary data, and Python uses the bytes data type for binary data, which is compatible with unsigned char* in C++. In MATLAB, you can handle binary data using uint8 arrays. This array can then be converted to a Python bytes object
  2. Another approach is to create a Python bytes data object directly in MATLAB. This is possible because MATLAB allows the use of Python code with the 'py.' prefix.
Please refer to the example below for guidance:
/* MATLAB array equivalent to b'\x10' in Python */
data = uint8([16]);
pyData = py.bytes(data);
/* Another way, create bytes data in MATLAB Python. */
pyBytes = py.bytes([16]);
You can try to send MATLAB uint8 array directly to C++ DLL interface but this method is more complex and requires handling data conversion and memory management carefully.
Let me know if this helps.

カテゴリ

製品

リリース

R2024a

質問済み:

烨
2024 年 2 月 18 日

回答済み:

2024 年 9 月 18 日

Community Treasure Hunt

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

Start Hunting!

Translated by