Am Mit, 2002-12-04 um 19.55 schrieb Alexandre Julliard: > The rules are that you can only call exported functions, and that you > can't add dll imports that would create a circular dependency. You can > find the list of existing dependencies near the end of dlls/Makefile.in. I propose the following patch to clarify this issue once and for all. Index: DEVELOPERS-HINTS =================================================================== RCS file: /home/wine/wine/DEVELOPERS-HINTS,v retrieving revision 1.14 diff -u -r1.14 DEVELOPERS-HINTS --- DEVELOPERS-HINTS 18 Sep 2002 23:11:19 -0000 1.14 +++ DEVELOPERS-HINTS 5 Dec 2002 14:10:00 -0000 @@ -456,6 +456,28 @@ module boundaries. +DLL SEPARATION +-------------- + +This issue is closely related to the naming conventions discussed above. + +The rules to preserve Dll separation are +- Do not call a non-exported function from a different Module/Dll. +- When calling exported functions of another Dll, make sure the Dll + you are working on imports that other Dll (look at the IMPORTS variable + in the Dll's Makefile.in). DO NOT USE functions of non-imported Dlls. +- In principle, it is legal to add more IMPORTS to a Dll, but you should + have really good reasons to do so. You must make sure that the new imports do + not cause a circular Dll dependency (we say if Dll A imports Dll B, + A depends on B). Dll Dependencies are specified in the individual + Dll's Makefile.in through the IMPORTS variable, and in the file + dlls/Makefile.in in the "Inter-Dll dependencies" section. + +Dll separation is a goal of current Wine development, it is not achieved +yet. However, it is important that you adhere to these rules NOW, so that +clean Dll separation can be reached more easily later. + + DEBUG MESSAGES ============== -- Martin Wilck Phone: +49 5251 8 15113 Fujitsu Siemens Computers Fax: +49 5251 8 20409 Heinz-Nixdorf-Ring 1 mailto:Martin.Wilck@Fujitsu-Siemens.com D-33106 Paderborn http://www.fujitsu-siemens.com/primergy