Ага! Вот такое телодвижение помогло:
## Код:
```
MODULE MyDllDyn0;
   IMPORT  SYSTEM,  WinApi,  Log := StdLog;
   
   TYPE  ProcType = PROCEDURE ();
      GlobType = POINTER TO ARRAY [untagged] 1 OF REAL;
   
   PROCEDURE Do*;
      VAR
         dll: WinApi.HINSTANCE;
         MyProc: ProcType;
         res: INTEGER;
         global : GlobType;
   BEGIN
      (* loading the DLL: *)
      dll := WinApi.LoadLibrary( "MyDll.dll" );
      ASSERT( dll # 0, 100 );

      (* getting access to the needed function: *)
      MyProc := SYSTEM.VAL( ProcType, WinApi.GetProcAddress( dll, "Assign" ) );
      global := SYSTEM.VAL( GlobType, WinApi.GetProcAddress( dll, "global" ) );
            
      (* working with the function: *)
      Log.Ln();
      Log.Real( global[0] );   Log.Ln();
      MyProc();
      Log.Real( global[0] );   Log.Ln();

      (* unloading the DLL: *)
      res := WinApi.FreeLibrary( dll )
   END Do;
   
END MyDllDyn0.

(!)MyDllDyn0.Do
```

Работает, но как-то всё это криво выглядит.