其他操作系统相关的修改

您可能需要修改 TOMUI 类的 setInput 方法以支持在新操作系统中跟踪。当为步进器创建输入流时,如果使用 setInput 方法创建新 ifstream 的调用使用 ios::nocreate,那么可能存在编译错误。 由于 ios::nocreate 不是 C++ 标准的一部分,那么某些编译器(例如:Green Hills)不支持它。目前,在 tom\tomstep.cpp 文件中实现 setInput 可以选择为 UNIX 和 STL 创建 ifstreams,而不使用 ios::nocreate。 实现如下所示:

ifdef unix
   // unix : 实际上,如果在此放置 ios::nocreate,那么Solaris 2 无法打开阅读
   //
   ifstream* file = new ifstream(filename);
#else
#ifdef OM_USE_STL
   ifstream* file = new ifstream(filename);
#else
   ifstream* file = new ifstream(filename,ios::nocreate);
#endif

此外,如果新环境不支持 ios::nocreate,那么您可能需要添加另一个 #ifdef 子句。例如,在 Green Hills 编译器的最后一个 #else 之前添加以下代码行:

#else
#ifdef green
   ifstream* file = new ifstream(filename);

反馈