Windows API database / map
Shachar Shemesh
wine-devel at sun.consumer.org.il
Tue Feb 4 01:02:17 CST 2003
Dimitrie O. Paun wrote:
> 4. Remove the columns from the matrix that have no X's.
>
No X's mean noone is linking to it, and it links to noone. I would like
to know of its existance, even if it is unlinked. Let's also not forget
that some modules (lpk.dll, for example) are only linked to dynamically
(due to circular dependancy from GDI32).
> 5. Order columns by order of importance. That is, the ones with
> more X's come first.
>
No, order them by order of dependancy. I.e. - I want to know that if a
DLL links to a DLL that is below it in the list, it is a circular
dependancy. There is a standard matrix view that looks something like this:
ntdll advapi32 user32 kernel32 msvcrt
advapi32
user32
kernel32
X
X
X
msvcrt
X
X
Ordering should be done by the following criteria:
1. If A depends on B, but B does not depend on A, A must appear
higher than B.
2. If rule 1 did not resolve relative order, and A has more modules
dependant on it than B, A must appear higher.
3. If neither rules resolved the order, make it arbitrary.
These two criteria make sure that the matrix is triangle shaped unless
there's a circular dependancy. Also, these rules make sure that modules
that depend on other modules and are heavily linked to, such as
kernel32, are higher up than modules that depend on no other modules and
are not linked to, such as actxprxy.
If you want, I can write some perl to create such a table from the
available information.
Shachar
More information about the wine-devel
mailing list