读取SFunction参数的char数组

时间:2018-03-15 23:41:25

标签: matlab simulink s-function

我在从SFunction参数读取字符串(文件名:'aFile.csv')时遇到问题。我得到的错误对我没有意义

我正在使用MSVC ++(2017)。

错误似乎来自mxGetString

中的ssGetSFcParam

以下是包含问题的代码片段(在mdlStart方法中)

static void mdlStart(SimStruct *S)
{
 FILE* fp;
 char buffer[255];   

 char* fileStr;
 char* paramStr;
 int_T fstatus;
 int_T pstatus;

 const int_T flen = (int_T)mxGetN((ssGetSFcnParam(S, 0)))*sizeof(char)+1;
 const int_T plen = (int_T)mxGetN((ssGetSFcnParam(S, 1)))*sizeof(char)+1;

 fileStr = mxMalloc(flen);
 paramStr = mxMalloc(plen);

 fstatus = mxGetString((ssGetSFcParam(S,0)),fileStr,flen); 
 pstatus = mxGetString((ssGetSFcParam(S,1)),paramStr,plen);  

 real_T* Defval =   (real_T *)mxGetData(PARAM_DEF2(S));        


 fp = fopen(fileStr, "r");  
  // additional code here, but has nothing to do with the error         

 mxFree(flen);
 mxFree(plen);
 fclose(fp); 
}
  

使用mex时出错

     

创建库FileReader.lib和对象FileReader.exp   FileReader.obj:错误LNK2019:未解析的外部符号   函数mdlStart FileReader.mexw64中引用了ssGetSFcParam:   致命错误LNK1120:1个未解析的外部

1 个答案:

答案 0 :(得分:0)

错误消息说明了所有内容:没有名为ssGetSFcParam的S函数方法。您需要使用已使用过两次的ssGetSFcnParam,然后再输入两次错字。