[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