(*~\Глагол\Приложения\Заграница\~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
(**)                            ОТДЕЛ Biblioteka+;
(*============================================================================*)
(* НАЗНАЧЕНИЕ: Динамически Подключаемая Библиотека (ДПБ) для
//                                              приложения "ИспБиблиотеки"    *)
(*============================================================================*)

ИСПОЛЬЗУЕТ
  ОБХОД,
  Асм     ИЗ "..\..\Отделы\Заграница\",  (* Асм - системные задачи на ASM x86 *)

  НаЭкран ИЗ "..\..\Отделы\Обмен\ВводВывод\";

ПЕР          (* приёмники загрузки ДПБиблиотеки *)
  hInstance,
     reason,param:ЦЕЛ;
ВИД
  Набор = НАБОР
    ц:ЦЕЛ;
    в:ВЕЩ;
  КОН;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА GetModuleFileName(hModule:ЦЕЛ; lpFilename+:ЦЕПЬ; nSize:ЦЕЛ):ЦЕЛ; ВЫЗОВ "GetModuleFileNameW" ИЗ "kernel32.dll";

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА* Zadacha1-(адрЦепи:ЦЕЛ);
ПЕР
  имя:ЦЕПЬ[300];
  знак:ЗНАК;
  поз:ЦЕЛ;
  ответ:ЦЕЛ;
УКАЗ
  ответ:=GetModuleFileName(hInstance,имя,РАЗМЕР(имя));
  НаЭкран.ВсяЦепь("^Работает 'Zadacha1' из ДПБиблиотеки '");
  НаЭкран.ВсяЦепь(имя);
  НаЭкран.ВсяЦепь("'.^");
          (* переписываем входную цепочку *)
  поз:=0;
  ПОВТОРЯТЬ
    ОБХОД.ИзПамяти(адрЦепи,знак);
    имя[поз]:=знак;
    УВЕЛИЧИТЬ(адрЦепи,2);
    УВЕЛИЧИТЬ(поз)
  ДО знак = 0X;
          (* вывод значения на Экран *)
  НаЭкран.ВсяЦепь("Значение <цепь>: '");
  НаЭкран.ВсяЦепь(имя);
  НаЭкран.ВсяЦепь("'.^^");
КОН Zadacha1;

(*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*)
ЗАДАЧА* Zadacha2-(набор+:Набор);
УКАЗ
  НаЭкран.ВсяЦепь("Работает 'Zadacha2' из той же ДПБиблиотеки.^");
  НаЭкран.Вещ4числа("Входные значения полей <набор>: (%f;%f).^",набор.ц,набор.в,0,0);
           (* изменим значения полей <набор> *)
  набор.ц:=3;
  набор.в:=4;
  НаЭкран.ВсяЦепь("Изменим значения полей <набор>:^");
КОН Zadacha2;

(*-SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS-*)
УКАЗ
                                          (* считываем приёмники ДПБиблиотеки *)
  Асм.ПриёмникиДПБ(hInstance,reason,param)

КОН Biblioteka.
