How to pass from Matlab to my C++ library a pointer to a class_B that is within a structure of a class_A?

8 次查看(过去 30 天)
I am able to create an array of structures from my cLibrary:
iniArray = clibArray('clib.cLibrary.strucType1',4);
I am able to create an instance of Class_A:
myClassA = clib.mycLibrary.nameSpaceX.Class_A();
I am also able to create an istance of class_B
myClassB = clib.mycLibrary.nameSpaceX.Class_B(iniArray,10);
I am also able to assign values to variables 1...4 in iniArray,
iniStruc.var1 = 0.2340;
iniArray.var2 = 1.5000e-06;
iniArray.var3 = 7890;
iniArray.var4 = 1141;
but when I try to assign myClassB to Class_B_ptr in iniArray
iniArray.Class_B_ptr = myClassB;
I get the following error:
Unable to set the 'Class_B_ptr' property of class
'InitStructT' because it is read-only.
Was not able to use lib.pointer or libpointer either
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
nameSpace nameSpaceX
{
class __declspec(dllexport) Class_A
{
public:
typedef struct InitStructT {
nameSpaceX::Class_B* Class_B_ptr = nullptr;
double var1 = 0.0;
double var2 = 0.0;
int var3 = 964;
int var4 = 965;
.....
}InitStruct;
......
Class_A(void);
......
void Initialize(InitStruct *inputs);
......
}
...........
}
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
in a separate file
nameSpace nameSpaceX
{
class __declspec(dllexport) Class_B
{
public:
static const int K1 = 10;
Class_B(strucType1 myStruct[12],
int var1 = 100
);
void Initialize(
...........
)
......
}
...........
}

回答(0 个)

类别

Help CenterFile Exchange 中查找有关 Call C from MATLAB 的更多信息

产品


版本

R2022a

Community Treasure Hunt

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

Start Hunting!

Translated by