在做SWMM二次开发的时候,采用C#封装界面调用C dll,现在我想调用swmm_run函数,实时获取内部elapsedTime这个运行参数来在WPF界面上更新进度条,不知道应该怎样调用?
int DLLEXPORT swmm_run(char* f1, char* f2, char* f3)
{
long newHour, oldHour = 0;
long theDay, theHour;
double elapsedTime = 0.0;
// --- open the files & read input data
ErrorCode = 0;
swmm_open(f1, f2, f3);
// --- run the simulation if input data OK
if ( !ErrorCode )
{
// --- initialize values
swmm_start(TRUE);
// --- execute each time step until elapsed time is re-set to 0
if ( !ErrorCode )
{
do
{
swmm_step(&elapsedTime);
newHour = (long)(elapsedTime * 24.0);
if ( newHour > oldHour )
{
theDay = (long)elapsedTime;
theHour = (long)((elapsedTime - floor(elapsedTime)) * 24.0);
oldHour = newHour;
}
} while ( elapsedTime > 0.0 && !ErrorCode );
}
}