Software usage analytics library, SoftMeter v0.6.1 released - see beyond the download
SoftMeter v0.6.1 was released.
The new version contains internal improvements so we encourage all developers to pick the new version.
There are no changes in the API, so all you need to do is replace the DLL (on Windows applications) or the DYLIB (on MacOS applications).
Windows DLL: cdecl or stdcall calling convention? Now, one trouble less.
When developers of Windows applications need to call functions from a DLL, they always run into the issue of __cdecl vs __stdcall DLL calling conventions. Some DLLs offer the one convention, others offer the second.
SoftMeter versions before v0.6.1 had their functions in the cdecl calling convention. Our source code examples for C/C++, Pascal and Inno Setups were showing how to call cdecl functions from a DLL.
In v0.6.1 we kept the cdecl functions as they were and we added their stdcall counterparts.
Now, the SoftMeter DLLs contains two function sets to offer in one DLL both calling conventions.
Depending on your Windows development tool you can call the set that suits you most. See the names in of the new DLL functions in the dumpbin report.
Some tools (e.g. Installaware) allow you to load a DLL, make a single call and unload the DLL. In such cases, you cannot keep the DLL loaded in memory and do successive function calls, preserving the internal state of the DLL.
This breaks the default calling sequence of SoftMeter, where start() initializes the library, sendXXX functions send hits to Google Analytics and finally, stop() gracefully shuts down the library, giving also time for any unfinished asynchronous calls to complete.
To ease the implementation of SoftMeter in such tools, a new all-in-one function was added.
The functions, aio_sendEvent() and its counterpart aio_sendEvent_stdcall() perform the whole sequence of start(), sendEvent(), stop.
They allow you to send with a single function call, an event to Google Analytics.
For its parameters, aio_sendEvent() combines the parameters of start() and sendEvent().
See the definition of the function at our GitHub.
Subscribe to our new SoftMeter newsletter and alerts, to receive important messages and new version updates.