It has nagged me for a long time that in order to build ooRexx on
Windows, one needs to also have an old Windows SDK installed. According
to a fairly recent exchange between Erich and Rick, this can be
accomplished by requesting XP(!) support when installing the free Visual
Studio Community edition. Since I already have VS 2015 installed w/o XP
support, this means either reinstalling or figuring out how to add that
support to my install. Or, I could find the SDK on the internet and
download it, adding it to my INCLUDE path. None of these options are
appealing to me. I keep wondering why we need the file "agtctl_i.c"
which is only found in that old SDK. I suspected that MS has devised
another way to implement the functionality that this file provides and
that if we rewrote our code, we could eliminate this requirement. So I
decided to see where this include file is used.
Because I have yet to install an SVN client, finding which of our
modules has this #include took a lot of searching through the the SVN
code repository but I finally found one - events.cpp in the OLE support
folder. I also did an internet search for "agtctl_i.c" and found
several sites that have that file. Looking at both files, I was not
able to determine how the include file was being used by events.cpp. So
I decided to download events.cpp (and events.h which is also needed) and
try to compile it, hoping the error messages might help me understand
the code better. Of course, without the SDK, I got the missing file
message so I commented out the #include and reran the compiler. To my
surprise, the compile completed and produced an events.obj! (Because the
makefile I am using doesn't have the compiler switches set to suppress
warnings about deprecated functions, I did get two warnings but they
were unrelated to the #include.)
Not being an expert in C/C++, to me this means that the #include is not
needed since the module compiles to a .obj without it. Perhaps when the
module was first being written, it was needed or it was thought it might
be needed and since the VS of the time had the #include in its SDK,
there was no harm in putting it in. Regardless, it is now imposing an
unnecessary requirement on the ooRexx build process.
I am opening a bug for this and supplying a version of events.cpp which
1) removes the unneeded #include and 2) modifies the function calls that
give rise to the warnings about deprecated fucntions. What I would
request is that someone do a build with my modified code and test it
against the OLE testcases to ensure they still work correctly.
Secondly, can someone determine if any other files in SVN have an
#include for "agtctl_i.c".
Thank you.
--
Gil Barmwater
------------------------------------------------------------------------------
Check out the vibrant tech community on one of the world's most
engaging tech sites, Slashdot.org! http://sdm.link/slashdot
_______________________________________________
Oorexx-devel mailing list
Oorexx-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/oorexx-devel