【发布时间】:2017-04-21 19:01:11
【问题描述】:
我通过 coder.ceval 调用 Matlab 中的一些外部 C++ 代码:
coder.ceval('myCppFuncName', coder.wref(mySruct))
只要 myStruct 是 简单
myStruct.a = 0;
myStruct.b = 1;
现在我有了一个在 C++ 头文件 struct.h 中定义的结构:
typedef struct
{
double x;
double y;
} myPoint;
typedef struct
{
int num_points;
myPoint *points; // pointer to array of myPoint-structs
} myStruct;
我不知道如何在 Matlab 中表示 C++ struct 的指针。由于我需要在 Matlab 中定义结构,因此我正在尝试以下操作:
coder.cstructname(matlab_myPoint,'myPoint','extern');
coder.cstructname(matlab_myStruct,'myStruct','extern');
matlab_myPoint= struct('x',0,'y',0);
matlab_myStruct = struct('num_points',2,'points',myPoint);
以错误消息结尾
错误 C2440:“=”:无法从“myPoint”转换为“myPoint *”
在原始 C++ 结构中,使用了指向结构数组的指针。如何在 Matlab 生成的 struct 中重现这种关系?谢谢!
【问题讨论】:
标签: c++ matlab code-generation mex