Just to let everyone know that v1.54 of AA+ has been released. Updates for this version include:
- Fixed a buffer initialization bug in PrintMoonPhase function in AAAtest.cpp. This was resulting in the moon phase ASCII diagrams to not show correctly on Unix terminals.
- I now have a Ubuntu 12.10 VM setup which allows the code to be fully tested on a Unix OS going forward. I am using the Code::Blocks IDE to provide a familiar development experience for this Visual Studio veteran!
- Fixed a transcription bug in CAAElementsPlanetaryOrbit::SaturnLongitudePerihelion. The correct coefficient for multiplying by T should have been 1.9637613 instead of 1.19637613. In the worked example of 31.a from Meeus’s book, he uses the date June 24 2065. With this bug now eliminated the value returned is now 94.34 degrees instead of 93.84 degrees for this date. Basically the incorrect coefficient would have returned a value too small by 0.77 degrees for every Julian century after the epoch J2000.0 = 2000 January 1.5 TD = JDE 2451545.0. Thanks to Sudhakar Gumparthi for reporting this bug.
Just to let everyone know that v1.23 of EnumSerialPorts has been released. Updates for this version include:
- Updated copyright details.
- Code no longer uses LoadLibrary without an absolute path when loading SETUPAPI and MSPORTS dlls. This avoids DLL planting security issues.
- Added a new internal CAutoHandle and CAutoHModule classes which makes the implementation for CEnumerateSerial simpler
- Code now uses an internal RegQueryValueString method to ensure that data returned from raw Win32 API call RegQueryValueEx is null terminated before it is treated as such in the code. Thanks to Jeffrey Walton for reporting this security issue.
- Updated the code to clean compile on VC 2012
Just to let everyone know that v1.53 of AA+ has been released. Updates for this version include:
- Updated the sample app to show the rise, transit and set details for the Moon and Sun at the North Pole for 31 October 2012. This shows that the Sun does not rise or set on that day and transits below the horizon at 11:43:36 UTC and the Moon also does not rise or set and transits above the horizon at 00:35:12 UTC. Thanks to Michael Iverson for prompting this check.
- Removed need for std::string class from AATest.cpp module.
- Fixed a small typo in the AARiseTransitSet.cpp history comments. Thanks to Michael Iverson for reporting this issue.
- Fixed a typo in the spelling of Coefficient throughout the AADynamicalTime.cpp module. Thanks to Michael Iverson for reporting this issue.
Just to let everyone know that v1.52 of AA+ has been released. Updates for this version include:
- Refactored the code in CAARiseTransitSet::Calculate.
- Added comments to the documentation for CAARiseTransitSet::Calculate on the potential for returning times outside of the UTC date requested. Thanks to Rob Phillips for reporting this issue.
Just to let everyone know that v1.0 of PerfCtrc2Mgr has been released. This is a set of MFC classes to encapsulate the Performance Counters v2 infrastructure which is available on Windows Vista or later.
- To use the classes in your code, just include “PerfCtrlv2Mgr.h” in which ever module requires it in your project.
- The classes are designed for VC 2005 or later. They will not compile on earlier releases of VC.
- The sample app included in the download is a VC 2008 console app which demonstrates the functionality.
- The code is UNICODE enabled and build configurations are provided for the sample app.
- To generate a collection of counters you start with a xml manifest file which defines the counters you want. In the sample this is “PerfCountersv2.man”.
- You then need to compile this manifest file using the SDK tool ctrpp.exe using for example the command line: ctrpp -o perfcountersv2.h -rc perfcountersv2.rc perfcountersv2.man. Ideally you should create a simple resource only DLL project which just includes the perfcountersv2.rc (or your equivalent) file. This file will be loaded by Windows when it needs the strings for a specific set of counters. For the included sample project the rc file is simply included in the main exe project for convenience.
- You should then register the xml manifest file from an elevated command prompt: lodctr “/M:c:\….\PerfCountersv2.man” Info: Successfully installed performance counters in c:\….\PerfCountersv2.man. Lodctr is a standard Windows executable for registering performance counters. At this point if you bring up Windows Performance Monitor (aka PerfMon) to show the counters it will fail to show the counters and instead you will get two guids which are the guids of the sample counter sets. This is because the PerfCountersv2.exe has not been created yet.
- Add the “PerfCtrv2Mg.h” header file to your project
- Initialize and create whatever counters you need along the lines of the code in the “perfcountersv2.cpp” file. This sample code registers the two counter sets and then randomly changes each counter up or down every second for a total of thirty seconds before the app exits.
- Build your project and ensure that the DLL or exe which includes the rc strings from the earlier step is in the same directory as where you registered the man file from. In the included sample app this would entail coping the PerfCountersv2.exe up one level.
- If you now bring up Perfmon, you should see two new counters called “PerfCountersv2 (CounterSet1)” and “PerfCounterv2 (CounterSet2)”.
- If you now run the sample exe, and add the two counters in Perfmon you should now see the two counters change randomly up or down every second.
- Hopefully the tutorial above should provide a quick start for you to add a simple performance counters infrastructure to your apps. Happing coding!
Just to let everyone know that v1.13 of CPdh has been released. Updates for this version include:
- Updated copyright details
- Updated the code to compile cleanly on VC 2012
- Code no longer uses LoadLibrary without an absolute path when loading PDH DLL. This avoids DLL planting security issues.
Just to let everyone know that v1.24 of CMapi has been released. Updates for this version include:
- Updated copyright details
- Updated code to clean compile on VC 2012
- Code no longer uses SearchPath or LoadLibrary without an absolute path when loading MAPI DLL. This avoids DLL planting security issues.