简单C++;异常错误(MEX) 我正在努力将一些C++代码从Windows到Linux,以在Matlab编译为MEX。该程序旨在通过虚拟串行端口连接数据手套。我以前从来没有用C++做过很多工作,所以这个问题的解决方法很简单。在一个较大的文件
简单C++;异常错误(MEX) 我正在努力将一些C++代码从Windows到Linux,以在Matlab编译为MEX。该程序旨在通过虚拟串行端口连接数据手套。我以前从来没有用C++做过很多工作,所以这个问题的解决方法很简单。在一个较大的文件中,我遇到了由以下try/catch引起的问题:简单C++;异常错误(MEX) 我正在努力将一些C++代码从Windows到Linux,以在Matlab编译为MEX。该程序旨在通过虚拟串行端口连接数据手套。我以前从来没有用C++做过很多工作,所以这个问题的解决方法很简单。在一个较大的文件,c++,exception,mex,C++,Exception,Mex,简单C++;异常错误(MEX) 我正在努力将一些C++代码从Windows到Linux,以在Matlab编译为MEX。该程序旨在通过虚拟串行端口连接数据手套。我以前从来没有用C++做过很多工作,所以这个问题的解决方法很简单。在一个较大的文件中,我遇到了由以下try/catch引起的问题: try { // You can tell which com port to use by checking windows settings under hardware g
try
{
// You can tell which com port to use by checking windows settings under hardware
glove = new CyberGlove(portName, (int) *baudRate); // baudrate 115200
/* Return CyberGlove object */
mxArray* result = (mxArray*) mxMalloc(sizeof(CyberGlove));
*reinterpret_cast<CyberGlove*>(result) = *glove;
plhs[0] = result;
}
catch(std::runtime_error err)
{
std::cout << "Error: " << err.what() << std::endl;
}
delete glove;
<> P>我不认为它与网络手套的东西有着特殊的关系,就像我对C++的知识缺乏以及如何使用异常一样。 < p>你需要<代码>包含< <代码> >哪里>代码> STD::RunTimeOrthys。我不知道为什么还没有包括在内,但问题解决了。现在我只想知道为什么它不能链接…考虑把手套放在智能指针中。如果你有一个例外,它永远不会被删除,顺便说一下,在C++中通过const引用捕获异常是个好主意。例如,
catch(const std::runtime\u error&err)
InitCyberGlove.cpp: In function ‘void mexFunction(int, mxArray**, int, const mxArray**)’:
InitCyberGlove.cpp:43:11: error: expected type-specifier
InitCyberGlove.cpp:43:30: error: expected unqualified-id before ‘err’
InitCyberGlove.cpp:43:30: error: expected ‘)’ before ‘err’
InitCyberGlove.cpp:43:30: error: expected ‘{’ before ‘err’
InitCyberGlove.cpp:43:30: error: ‘err’ was not declared in this scope
InitCyberGlove.cpp:43:33: error: expected ‘;’ before ‘)’ token