Using Matlab Generated Enumerators of External C Library
2 visualizaciones (últimos 30 días)
Mostrar comentarios más antiguos
Matlab generates String representations for enumerator types when loading an external library using loadlibrary. It is then possible to pass enumerators as string or values when calling library functions with calllib. When enumerator values are returned, Matlab will return the string representation. The question is:
Are there Matlab functions to convert between enumerator value its string representation (and vice-versa) by the user?
Note: enum2val is not relevant since it works on Matlab Class Enumerators and not on those Auto-Generated from the external library h files.
Unless...it is: I would guess Matlab utilizes existing functionality and maybe it Auto-Generates Matlab Classes for the enumerators of external libraries. In this case the 'type' value used in enum2val would have to be built from combination of library name and enumerator name.
Thanks ! Alon
0 comentarios
Respuestas (1)
Philip Borghesani
el 3 de Mayo de 2016
There is no straight forward way of doing this other then to write your own converter in C.
typedef enum Enum1 {en1=1,en2,en4=4} TEnum1;
Enum1 enumStr(Enum1 val) { return val; } // returns string in MATLAB
int32 enumInt(Enum1 val) { return (int32)val; } // returns numeric value in MATLAB
Ver también
Categorías
Más información sobre C Shared Library Integration en Help Center y File Exchange.
Productos
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!