C++函数:
DLLENTRY int VTS_API
SetParamValue( const char *paramName, void *paramValue ) //will return zero(0) in the case of an error
{
rtwCAPI_ModelMappingInfo* mmi = &(rtmGetDataMapInfo(PSA_StandAlone_M).mmi);
int idx = getParamIdx( paramName );
if (idx<0) {
return 0; //Error
}
int retval = capi_ModifyModelParameter( mmi, idx, paramValue );
if (retval == 1 ) {
ParamUpdateConst();
}
return retval;
}
以及我的Python代码:
^{pr2}$退货
^{3}$你知道什么能帮上忙吗?
我已经尝试了POINTER
和byref()
,但是我得到的是相同的输出
SetParamValue需要一个指针(void*或c\u void\)作为2nd参数,但您传递的是一个int。
该函数将其解释为一个指针(内存地址),当试图取消对它的引用(以获取其内容)时,它将segfault(访问冲突),因为进程对该地址没有权限。在
要解决此问题,请将正确的参数传递给函数:
您可以在[Python 3]: ctypes - A foreign function library for Python上找到更多详细信息。在
相关问题 更多 >
编程相关推荐