Keeping compatibility across the service packs

Starting with ARES Commander 2022 we introduce a stable version of the APIs across the service packs. This article explains how to compile your plugin against an specific Service Pack version.

You will find several libraries in the SDK. Current will refer to the latest version available in the service pack and in addition you will see the SDKs for the previous service packs.

You will require three steps to compile and make your plugin available for a specific API version.

  1. Compile your plugin against the specific headers e.g. Headers/frx_inc/FxARX20XXSPX/

  2. Link your plugin against correct library e.g. Libraries/frx_lib/FxARX20XX_X0.lib.

  3. Add a resource to your plugin defining the API version.

Adding resource to your project

Please create a resource file e.g. MyPlugin.rc and add it to your FRX project. The content may look like this

#define APSTUDIO_READONLY_SYMBOLS #include "afxres.h" #undef APSTUDIO_READONLY_SYMBOLS VS_VERSION_INFO VERSIONINFO FILEVERSION 21,0,0,1 PRODUCTVERSION 1 FILEFLAGSMASK 0x3fL #ifdef _DEBUG FILEFLAGS 0x1L #else FILEFLAGS 0x0L #endif FILEOS 0x4L FILETYPE 0x2L FILESUBTYPE 0x0L BEGIN BLOCK "StringFileInfo" BEGIN BLOCK "040704b0" BEGIN VALUE "FRX-API-VERSION", "2025_00" //ADD FRX API VERSION END END BLOCK "VarFileInfo" BEGIN VALUE "Translation", 0x407, 1200 END END

You can explicitly add the FxARX API version: 20XX_X0, as we did above or you can use the macro FRX_API_VERSION:

  1. Include the correct FrxVersion.h from the selected API.

  2. Define the value FRX-API-VERSION and use the macro FRX_API_VERSION from FrxVersion.h

VALUE "FRX-API-VERSION", FRX_API_VERSION

This resource value is required for ARES Commander to understand what API is required for the plugin.

Note: All plugins you want to load must refer to the same API. If not you cannot load all together.