Операционные системы. Марапулец Ю.В. - 58 стр.

UptoLike

Составители: 

if( strlen( lpCmdLine ) )
iInst = atoi( lpCmdLine ) ;
else
iInst = 1;
Данные номера не имеют ничего общего с DDEML и служат лишь в
качестве меток. DDEML имеет иное средство идентификации экземпляров
приложений - дескрипторы, передаваемые операционной системой. Для
получения локальных данных предназначен генератор псевдослучайных чисел.
Обычно подобные генераторы должны инициализироваться различными
начальными значениями, иначе они будут всегда генерировать одну и ту же
последовательность чисел. Для этой цели, как правило, применяется Borland-
функция randomize, которая использует в качестве инициализирующего числа
текущее значение системного таймера. Но поскольку в компиляторе Microsoft
эта функция отсутствует, воспользоваться ее аналогом.
#ifdef __BORLANDC__
randomize ();
#еlsе
srand( (unsigned)time( NULL ) );
#endif
Далее первый экземпляр должен запустить остальные четыре экземпляра
приложения с помощью функции WinExec, предоставив ей соответствующие
аргументы командной строки для каждого экземпляра.
switch( iInst )
{ // первый экземпляр запускает остальные
case 1:
xLoc = 195; yLoc = 125;
WinExec( "DDE_DEMO 2", SW_SHOW );
WinExec ( "DDE_DEMO 3", SW_SHOW );
WinExec( "DDE_DEMO 4", SW_SHOW );
WinExec( "DDE_DEMO 5", SW_SHOW );
break;
case 2:
xLoc = 0; yLoc =0;
break;
case 3:
xLoc = 390; yLoc = 0;
break;
case 4:
xLoc = 390; yLoc =250;
58
      if( strlen( lpCmdLine ) )
              iInst = atoi( lpCmdLine ) ;
      else
              iInst = 1;

      Данные номера не имеют ничего общего с DDEML и служат лишь в
качестве меток. DDEML имеет иное средство идентификации экземпляров
приложений - дескрипторы, передаваемые операционной системой. Для
получения локальных данных предназначен генератор псевдослучайных чисел.
Обычно подобные генераторы должны инициализироваться различными
начальными значениями, иначе они будут всегда генерировать одну и ту же
последовательность чисел. Для этой цели, как правило, применяется Borland-
функция randomize, которая использует в качестве инициализирующего числа
текущее значение системного таймера. Но поскольку в компиляторе Microsoft
эта функция отсутствует, воспользоваться ее аналогом.

#ifdef __BORLANDC__
       randomize ();
#еlsе
       srand( (unsigned)time( NULL ) );
#endif

     Далее первый экземпляр должен запустить остальные четыре экземпляра
приложения с помощью функции WinExec, предоставив ей соответствующие
аргументы командной строки для каждого экземпляра.

      switch( iInst )
      {          // первый экземпляр запускает остальные
            case 1:
                    xLoc = 195; yLoc = 125;
                    WinExec( "DDE_DEMO 2", SW_SHOW );
                    WinExec ( "DDE_DEMO 3", SW_SHOW );
                    WinExec( "DDE_DEMO 4", SW_SHOW );
                    WinExec( "DDE_DEMO 5", SW_SHOW );
                    break;
            case 2:
                    xLoc = 0; yLoc =0;
                    break;
            case 3:
                    xLoc = 390; yLoc = 0;
                    break;
            case 4:
                    xLoc = 390; yLoc =250;

                                            58