Software usage analytics library, SoftMeter v0.6.1 released - see beyond the download

What is SoftMeter?

SoftMeter application analytics and statisticsQuick answer:

SoftMeter is "Google Analytics for desktop applications".

Longer answer:

Google Analytics (GA) is the most popular website statistics tool. It shows statistics about the visitors to your website. GA can also track Firebase mobile apps.

SoftMeter is a very small software library that extends the coverage of GA to include desktop applications (Windows and MacOS), and mobile apps (IOS iPhone and iPad).

By including SoftMeter in your software you will be able to see how users around the world use your application, just like you monitor visitors' traffic on your website.

Application usage statistics

SoftMeter v0.6.1 was released.

Internal improvements

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.

All-in-one functions

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.


Add new comment