TIP: Click on subject to list as thread! ANSI
echo: os2prog
to: All
from: Joel Downer
date: 1994-11-01 09:48:42
subject: DLL Issues...

Hi, all!

I have a few questions regarding .DLL's I was hoping people might have
ideas about.

I am currently wrapping up the second wide beta of Doors/2, an OS/2 door
library based on Brian Pirie's OpenDoors package.  I've spent a number
of hours this release streamlining and "portablizing" the code so it
will compile and link under multiple compilers.

In some ways, this appears to be the ideal sort of project to adapt into
a .DLL.  If I were distributing a DR2V500.DLL rather than a DOORS2.LIB,
most of the multicompiler issues would be *non*-issues, because run-time
library code would be wrapped into the .DLL.  Furthermore, the memory
savings from using a .DLL would be very helpful on a system running
multiple doors based on Doors/2.

Here are the issues I'm having trouble with:

1. How hard is it to write source code that can easily be compiled both
   as a .DLL and as a .LIB?  Registrations to this library include full
   source, and many customers are interested in adapting the library to
   their needs.  Obviously, for them to distribute modified versions of
   the .DLL would cause all sorts of chaos, so they'll need to be able
   to use the sources compiled in .LIB form.

2. Because my clients' clients will need to have the .DLL installed on
   their systems, the distinction between the registered and
   unregistered version of the library becomes somewhat harder to
   maintain. :-(  I have to be able to satisfy myself (and Brian, who's
   graciously allowed me to distribute this port shareware) that making
   a complete version of the .DLL freely available won't make the
   registration requirements meaningless.  (It wouldn't do much good to
   require registration when anyone could take the shareware docs and
   write to the .DLL without registering.)

   The best solution I've come up with is to use a registration key
   system, and to require .DLL clients to provide name/key data on the
   initial call to the .DLL.  My questions are:

   (A) will this even work (I learn quickly, but my next .DLL will be
   my first ), and

   (B) couldn't this turn out even easier to reverse-engineer than key
   code systems usually are (because any programmer with knowledge of
   .DLL's could write a "dummy" DR2V500.DLL to find out the codes of
   existing programs just by referring to the docs about the library
   initialization function)?

   I may come across as paranoid here, but the fact that I have two
   people to convince here makes me double-careful. 

Thanks in advance for any ideas, information, or assistance!

Take care,

Joel Downer (joel{at}dreamcty.jd.com, 1:202/705)


--- WM v3.10/92-0488

* Origin: The Dreaming City, La Mesa, Ca (1:202/704)
SEEN-BY: 12/2442 54/54 620/243 624/50 632/348 640/820 690/660 711/409 410 413
SEEN-BY: 711/430 807 808 809 934 942 949 712/353 623 713/888 800/1
@PATH: 202/704 701 1 3615/50 229/2 12/2442 711/409 54/54 711/808 809 934

SOURCE: echomail via fidonet.ozzmosis.com

Email questions or comments to sysop@ipingthereforeiam.com
All parts of this website painstakingly hand-crafted in the U.S.A.!
IPTIA BBS/MUD/Terminal/Game Server List, © 2025 IPTIA Consulting™.