home bbs files messages ]

Forums before death by AOL, social media and spammers... "We can't have nice things"

   comp.os.vms      DEC's VAX* line of computers & VMS.      264,096 messages   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]

   Message 262,211 of 264,096   
   =?UTF-8?Q?Arne_Vajh=C3=B8j?= to All   
   Fun trick   
   07 Jan 25 20:58:29   
   
   From: arne@vajhoej.dk   
      
   During some troubleshooting over at VSI forum hb told me that   
   running a shareable image will execute LIB$INITIALIZE   
   functions.   
      
   That made me write this:   
      
   $ type lib.pas   
   [inherit('sys$library:pascal$lib_routines', 'sys$library:starlet')]   
   module lib(input, output);   
      
   [global]   
   procedure check;   
      
   var   
       imgnam : varying [1024] of char;   
      
   begin   
       lib$getjpi(item_code := jpi$_imagname, resultant_string :=   
   imgnam.body, resultant_length := imgnam.length);   
       if index(imgnam, ']libshr.EXE') > 0 then begin   
          writeln('This is a shareable image to link against not run');   
          $exit(ss$_normal);   
       end;   
   end;   
      
   [global]   
   procedure say;   
      
   begin   
       writeln('Hi');   
   end;   
      
   end.   
   $ type prg.pas   
   program prg(input,output);   
      
   [external]   
   procedure say; external;   
      
   begin   
       say;   
   end.   
   $ type trick.mar   
            .title  trick   
            .extrn  lib$initialize   
            .psect  lib$initialize long,nopic,con,gbl,noshr,noexe,nowrt   
            .address check   
            .end   
   $ macro trick   
   $ pas lib   
   $ link/share=libshr lib + trick + sys$input/opt   
   SYMBOL_VECTOR=(say=PROCEDURE)   
   $   
   $ define/nolog libshr sys$disk:[]libshr   
   $ pas prg   
   $ link prg + sys$input/opt   
   libshr/share   
   $   
   $ run prg   
   Hi   
   $ run libshr   
   This is a shareable image to link against not run   
      
   :-)   
      
   Arne   
      
   --- SoupGate-DOS v1.05   
    * Origin: you cannot sedate... all the things you hate (1:229/2)   

[   << oldest   |   < older   |   list   |   newer >   |   newest >>   ]


(c) 1994,  bbs@darkrealms.ca