rhoda@mercury.sybase.com (12/13/89)
There are essentially 2 types of DLLs: 1. stand-alone DLLs (Microsoft term) these are linked with LLIBCDLL.LIB & DOSCALLS.LIB the DLL has the C run-time code linked into it 2. C run-time DLLs and associated DLLs and programs termed private C run-time DLLs by Microsoft a C run-time DLL (CRT DLL) is made by linking CRTLIB.OBJ & CDLLOBJS.LIB & DOSCALLS.LIB a CRT DLL can contain all or some of the C run-time functions a CRT DLL can also contain custom init/termination code or it can use the default code an associated DLL is made by linking CRTDLL.OBJ & the import lib of the CRT DLL & DOSCALLS.LIB an assocated program (.exe) is made by linking CRTEXE.OBJ & the import lib of the CRT DLL & DOSCALLS.LIB Notice how the 2. says "C run-time DLLs and *associated* DLLs and programs". That is how the documentation speaks of them. Sort of a unit. Here are a couple of quotes from the doc. "A private C run-time DLL must be closely tied to its programs and associated DLLs." "Processes and DLLs that share a private run-time DLL share environment strings and global C run-time data (for example, file pointers for buffered I/O and memory allocated with the malloc function). Therefore, the program and the DLLs must cooperate on the use of this data." *QUESTION* Let's say one makes a *generic* C run-time DLL. This generic CRT DLL would include all the C run-time functions (use CDLLOBJS.DEF to get them all) and would not have any custom init or termination code. WHY WOULD THIS GENERIC CRT DLL HAVE TO BE TIED TO ANY OTHER DLL OR ANY PROGRAM? Apparently, I'm missing something. I think what I'm missing has to do with the 2nd quote. I don't fully understand the 'whys' of that quote. Thanks for any help, ---------------------------------------------------------------------- Rhoda Neimand [I speak for myself] {sun,lll-tis,pyramid,pacbell}!sybase!rhoda -or- rhoda@sybase.com "I didn't want to, Jim" Mr. Spock in _This Side Of Paradise_ ----------------------------------------------------------------------