- blanks(256) return 1-by-n array of space characters.
- strtrim is used to remove any trailing whitespace characters from the output parameter.
Calllib with C++ out char *parameter
4 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Hello,
I'm doing an example of my sdk. The c++ function on header is
int myfunction(int index, out char *parameter);
So my call in MATLAB is
strOutParameter = "00";
[intReturned, strOutParameter] = calllib('myLib', 'myfunction', index, strOutParamter);
I use this reference for the types mathworks.com/help/matlab/matlab_external/matlab-to-c-data-type-mapping.html
I try it but it isn't working. I've an error :
Error using calllib
Parameter can not be converted to a character vector
I really don't code on MATLAB. I'm just doing a little example file of few lines for my users.
So my question is ; How to pass and get a out char * parameter ?
Thanks in advance
0 comentarios
Respuestas (1)
Rishav
el 21 de Feb. de 2024
Hi Justin,
In MATLAB, when passing and receiving char* parameters to and from C++ functions using 'calllib' function, you need to handle them as MATLAB strings (char arrays).
Here is how you can modify your MATLAB code:
% Define the input parameters
index = 1;
strOutParameter = blanks(256);
% Call the C++ function using calllib
[intReturned, strOutParameter] = calllib('myLib', 'myfunction', index, strOutParameter);
% Convert the output parameter to a string
strOutParameter = strtrim(strOutParameter);
where,
Please refer to the below documentations for more details on:
0 comentarios
Ver también
Categorías
Más información sobre C Shared Library Integration en Help Center y File Exchange.
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!