FRX Frequently Asked Questions

During the compilation of my FRX project I get the following linking issue:

Unresolved external symbol "acrxGetApiVersion".

How can I fix this error?

Please, remove from the project DEF file the line: acrxGetApiVersion PRIVATE

Compiling problems when porting my project to FxARX SDK?

Although FxARX SDK currently supports a wide range of ObjectARX capabilities, still doesn't cover the totality of the ObjectARX functionality. So, you could face some exceptions during the compilation of your projects with FxARX:

  • Missing functions or classes.

  • ObjectARX header file is missing.

  • Defines, typedefs that are not declared.

  • Missing enums or enum values.

  • Functions with different signature.

In any of those cases, please report the issue to our support team (Reporting FRX Issues )

I could build my FRX module but when I load with ARES Commander I get the following error:

FRX module XXXX.frx had a problem during loading: Error code 126 - The specified module could not be found.

What this message means?

The problem is that the module that you are trying to load or any of its dependencies are not found. ARES Commander searches in the ARES Support files paths and in the PATH environment variable for the dependencies. So, all the dependencies of the module that is being loaded must be located in any of the folders that are covered under ARES Support paths and PATH environment variable.

 

The error message means that the module was found but a required function is missing. This is binary incompatibility issue. Probably your module was built against a FxARX version that doesn’t correspond to the ARES Commander version where you are loading your module. Please, make sure your module is built against the same FxARX SDK as the ARES Commander that you are testing.

You can use dependency Walker to analyze if your module has binary incompatibilities with other modules.

 

ARES Commander tries to load your module with the latest FxARX version and finds that your FRX module is incompatible. Please, make sure you add into the FRX project resource file the FRX API version that it is used to compile your projects. Review step 7 in the following document: Compiling ObjectARX® Application Against FRX SDK (Step 5)

 

Please, use ARES Commander templates as it is described in the following link:ARES Commander Plugin Project templates

 

Define the value FRX-API-VERSION in the resource file of your plugin projects, and associate to FRX_API_VERSION (FrxVersion.h). Internally, FxARX loader will read that property and will load the corresponding FxARX module. This way, you will not run into binary compatibility issues. For more information read: Keeping compatibility across the service packs

 

ARES Commander stores the profile information under %APPDATA%\ARES Commander Edition x64\<ARES Commander version number>\Profiles instead of using the Registry. Once, application starts that information is cache and could be manipulated via FxARX API. Basically, you can modify/access to profile information with AcApProfileManager methods :

AcApProfileManager::ProfileGetKeyValue(profilename, setting, output_value ); AcApProfileManager::ProfileSetKeyValue(profilename, setting_to_modify, new_value );

Please, check profile.xml (%APPDATA%\ARES Commander Edition x63\<ARES Commander version number>\Profiles) to understand the setting hierarchy and associated type.

Migrating to FRX | Updating the profile provides an example that explains how to get current profile and update its support paths.