[ros-kernel] about headers
Jonathan Wilson
jonwil at tpgi.com.au
Mon Oct 20 00:30:45 CEST 2003
What we should have is:
1.Public headers + libs (basicly, a clone of what is in the latest
Microsoft Platform SDK)
2.DDK headers + libs (basicly, a clone of what is in the windows server
2003 DDK)
3.IFS kit headers + libs (clone of ntifs.h and related headers + libs)
4.undocumented userland headers + libs (i.e. anything exported from
userland dlls that isnt in #1)
5.undocumented kernel headers + libs (i.e. anything from kernel
dlls/drivers/etc that isnt in #2/#3)
6.native API headers + libs (i.e. all that stuff thats visible from ntdll.dll)
7.internal headers (i.e. stuff thats not visible outside the dll its
declared in)
8.MSVCRT headers + libs (i.e. headers + libs included with visual C++ that
are related to talking to
crtdll.dll/msvcrt20.dll/msvcrt40.dll/msvcrt.dll/msvcr70.dll/msvcr71.dll/etc)
9.MingW-Runtime headers + libs (i.e. those bits of code and stuff necessary
for MingW-Runtime but not used by MS at all, usually needed to account for
differences in how MS and GCC do things)
and 10.Visual C++ headers + libs (i.e. headers + libs for stuff in visual
C++ that we dont want to (or cant) directly copy e.g. MFC, ATL,
MSVCPRT.DLL, MSVCIRT.DLL etc)
We should follow the same dependancy tree as MS does (i.e. if x.h from the
PFSDK includes y.h, our copy of x.h should also)
If microsoft declares something in more than one header file, we should do
it too (with the appropriate #ifndef xxx just like MS)
Basicly, when it comes to windows development, Visual C++, the Platform
SDK, the DDK and the IFS kit are the "gold standard".
The header files and libraries included with those are the most accurate.
We should work towards making our header files match those as much as
possible. That way, stuff written for Visual C++ and the MS headers should
compile as-is on GCC + MingW-Runtime + w32api.
Also, our headers should not contain anything not found in the MS headers.
More information about the Ros-kernel
mailing list