www.digitalmars.com         C & C++   DMDScript  

c++.windows.32-bits - newer header files for windows with dmc

reply "Carl Sturtivant" <sturtivant gmail.com> writes:
I've used dmc 8.52 recently with considerable success to revive 
some tens of thousands of lines of old code from the 20th century 
(DOS and windows) and move them to win32, where they run 
successfully even on x64.

Now I find that I need headers that include prototypes for many 
online documented win32 api functions that the dmc lib tool 
informs me are in the import libraries that come with dmc 8.52 
but that a script informs me have no prototypes in any header 
file that accompanies that compiler.

I'd like some advice how to proceed in updating the headers (and 
possibly the import libs in dm/lib/ though those look at a glance 
adequate to build things good back to XP SP3 --- do I need to 
improve these using implib?). A script indicates that there are 
around 1100 functions in the import libraries for the following 
win32 DLLs that do not have declarations in any header supplied 
with the latest dmc. And the latest suggestions online on how to 
update a dmc installation's import libraries and headers are from 
2003.

["kernel32.dll", "advapi32.dll", "user32.dll", "gdi32.dll", 
"shell32.dll", "comdlg32.dll", "comctl32.dll", "netapi32.dll", 
"wsock32.dll" ]

Any help appreciated much.
Dec 30 2012
parent "Carl Sturtivant" <sturtivant gmail.com> writes:
Went ahead and picked up the 2010 SDK, converted the import libs 
to OMF to be dmc/optlink compatible using COFFIMPLIB
   http://www.digitalmars.com/ctg/coffimplib.html
and dropped them in place of their predecessors in dm\lib\
.

Then dropped the new header files, some in place of their 
predecessors in dm\include\win32\ but others new, and put edited 
copies of dm\include\windows.h referring to any new such headers 
so an include of a new header from the SDK .

e.g. a new header frogstar.h which will be sought in 
dm\include\frogstar.h will find frogstar.h and will bring in 
dm\include\win32\frogstar.h in the dmc standard way --- 
dm\include\frogstar.h is just dm\include\windows.h edited to 
include dm\include\win32\frogstar.h instead of 
dm\include\win32\windows.h --- I did this for each real new 
header file in place of frogstar.h
.

sal.h was missing from the SDK despite being referred to by other 
headers. This is about some C pre-processor annotation games 
(some design-by-contract related). These annotation macros can be 
defined to map to no text at all to get rid of them. I placed 
suitable declarations in my own sal.h (more on this in a later 
post answering myself in this thread). I've simplified slightly 
here, as this took me some hours, and wasn't the only problem 
solved to work around that missing file. Once my entire solution 
works, I will post the final details here.

After all this, a C file that included <windows.h> compiled with 
dmc -c with two problems. Here they are:

__declspec(deprecated)
#pragma deprecated(.......)

Not sure what to do about these except edit them out, as they 
cause dmc a problem.

Any suggestions?
Jan 03 2013