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项目中的生成前事件。