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