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

Reply via email to