Calls to custom built C++ DLLs results in error inside IDE

Symptom

  • In PowerBuilder, when trying to call an external function from a custom built DLL in the IDE environment, the following error returns:

    PowerBuilder application execution error (R0014)
    Application terminated.
    Error:  Error opening DLL library <dll_name>.dll
  • The same application works when you run as an application executable.

Environment

  • PowerBuilder

Reproducing the Issue

In the PowerBuilder IDE environment, run a testcase using the custom built C++ DLL

Cause

  • Conflict in base address used by PowerBuilder DLL (sybcsi_openssl29.dll) and the custom c++ DLL.

  • The sybcsi_openssl29.dll is only loaded in the PowerBuilder IDE environment.   It is not loaded when running an application executable.

Solution

Recompile the custom c++ DLL to use a fixed address that will not conflict with 0000000002FE0000.