代码解读

1. DeltaresHydro类

public函数

  • DeltaresHydro(int argc, char* argv[], char* envp[]) 构造函数
  • DeltaresHydro(void) 构造函数
  • ~DeltaresHydro() 析构函数
  • void Run(void)
  • void Init(void)
  • void Step(double stepSize)
  • void Finish(void)
  • double GetStartTime(void)
  • double GetEndTime(void)
  • double GetCurrentTime(void)
  • GetTimeStep(void)

public 变量

  • bool ready
  • char* exePath, char* exeName, char* mainArgs, char* slaveArg, enum {MAXSTRING}
  • 类 Clock* clock, XmlTree* config, XmlTree* start, dh_control* control, Component* startComponent
  • static const char startEntry[]

private 变量

  • char* configfile
  • bool done
  • XmlTree* curnode

Component类

public 函数

  • Component(DeltaresHydro * DH) 构造函数,函数是DeltaresHydro类
  • virtual ~Component(void)
  • 其它虚函数

作用

Component类被Flow2D3D类继承,所以定义了一些虚函数。

2. tools_gpl/vs/vs 部分代码修改

该项目存在潜在错误,项目属性中的 生成事件->生成前事件,命令行为

cd \
mkdir tmp
cd $(ProjectDir)\src
del /f vs_l.c vs_y.c
"$(SolutionDir)\third_party_open\lexyacc\bin\win32\flex.exe" -ovs_l.c vs_l.l
"$(SolutionDir)\third_party_open\lexyacc\bin\win32\byacc.exe" -d -ovs_y.c vs_y.y

此处是利用flex和yacc工具生成部分代码,但自带的flex.exe和byacc.exe可能不能正常工作,最好自己安装配置flex和yacc工具使用,然后将命令改为如下:

cd $(ProjectDir)src
del /f vs_l.c vs_y.tab.c
"C:\Program Files (x86)\GnuWin32\bin\flex.exe" -ovs_l.c vs_l.l
"C:\Program Files (x86)\GnuWin32\bin\yacc.exe" -d -bvs_y vs_y.y

yacc工具的参数不能使用-o,用-b指定生成文件的前缀,即vs_y,此时生成的文件为vs_y.tab.c,而vs_l.c中引入的头文件是vs_y.h(第34行),故需要将此处修改为vs_y.tab.h

或者手动生成这两个文件,然后删除掉vs项目中的生成前事件。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容