本文整理汇总了C++中Simulator::ExecutablePath方法的典型用法代码示例。如果您正苦于以下问题:C++ Simulator::ExecutablePath方法的具体用法?C++ Simulator::ExecutablePath怎么用?C++ Simulator::ExecutablePath使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Simulator
的用法示例。
在下文中一共展示了Simulator::ExecutablePath方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: InitPython
void PyEmbedder::InitPython()
{
int iRet = 0;
if(!Py_IsInitialized())
{
Py_SetProgramName("AnimatLab");
Py_Initialize();
if(!Py_IsInitialized())
THROW_ERROR(Al_Err_lFailedToInitPython, Al_Err_strFailedToInitPython);
Simulator *lpSim = ActiveSim();
if(!lpSim)
THROW_ERROR(Al_Err_lSimNotDefined, Al_Err_strSimNotDefined);
std::string strExePath = lpSim->ExecutablePath();
strExePath = Std_Replace(strExePath, "\\", "/");
//Import base modules and set paths correctly.
std::string strInit = "import os,sys,traceback,math\n"
"sys.path.append(\"" + strExePath + "\")\n"
"os.chdir(\"" + strExePath + "\")\n";
iRet = PyRun_SimpleString(strInit.c_str());
if(iRet != 0)
THROW_ERROR(Al_Err_lFailedToInitPython, Al_Err_strFailedToInitPython);
//Try to import AnimatSimPy
iRet = PyRun_SimpleString("import AnimatSimPy\n");
if(iRet != 0)
THROW_ERROR(Al_Err_lFailedToImportAnimatSimPy, Al_Err_strFailedToImportAnimatSimPy);
//Setup sys exception handler for animatsim.
std::string strExcept = "def animat_excepthook(type, value, tb):\n"
" strErr = \"\".join(traceback.format_exception(type, value, tb))\n"
" AnimatSimPy.SetLastScriptError(strErr)\n"
"sys.excepthook = animat_excepthook\n";
iRet = PyRun_SimpleString(strExcept.c_str());
if(iRet != 0)
THROW_ERROR(Al_Err_lFailedToInitPython, Al_Err_strFailedToInitPython);
//For testing of exception handler.
//std::string strTest = "a = \"text\"\n"
// "b = 5\n"
// "error = a + b\n";
//iRet = PyRun_SimpleString(strTest.c_str());
//if(iRet != 0)
//{
// std::string strErr = GetLastScriptError();
//}
m_bPyInit = true;
}
}