Tek-Tips is the largest IT community on the Internet today!

Members share and learn making Tek-Tips Forums the best source of peer-reviewed technical information on the Internet!

  • Congratulations Mike Lewis on being selected by the Tek-Tips community for having the most helpful posts in the forums last week. Way to Go!

Splitting a complex program into DLLs

Status
Not open for further replies.

Guest_imported

New member
Jan 1, 1970
0
I've written a very complex program, consisting of three parts: a graphic unit, an object part, which consists of some interacting objects and the program itself, which controlls all this.

Now I want to split those first to party into two DLLs. Problem is: There are interactions between objects and grafic unit and there are memory parts used by all three.

I'm not using MFC - and I don't want to, if this is possible.

How can I do this? Is there a good tutorial on DLLs on web?




 
The purpose of DLL's is possibility to use common procedures from different programs reducing required memory. Why don't you like one big EXE?
 
I don't like one big EXE because I want different people to be able to work on different parts of the program at the same time. Every one person could be responsable for one DLL, instead of allways including source someone changed by hand.

 
I think Dlls won't help. Obviously your program parts interact a lot, so different people can never work completely independent. I recommend to reduce shared memory as much as you can, and use interface functions whereever possible. Next, I would use static libraries instead of Dlls. mingis is correct on this, the primary purpose of Dlls is not to split one complex file into several smaller files. (This sometimes even increases complexity!) You should also think about using a tool like Visual SourceSafe. Once installed and ready, it helps _a lot_ to split/merge several people's work.
 
Interaction between objects can be organized through ordinary DLL calls. Common memory fields can be held in main part of the project, pointer to that area must be passed to each DLL during the initialization routines. You must ensure, that DLL's shouldn't perform any task before the initialization call is executed.
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor

Back
Top