当前位置: 首页>>代码示例>>C++>>正文


C++ Simulator::ExecutablePath方法代码示例

本文整理汇总了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;
	}
}
开发者ID:NeuroRoboticTech,项目名称:AnimatLabPublicSource,代码行数:53,代码来源:PyEmbedder.cpp


注:本文中的Simulator::ExecutablePath方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。