1. Gunnar Gisleberg
  2. PowerBuilder
  3. Thursday, 3 June 2021 08:06 AM UTC


Our application development is based on 2019 r3. I ran into a crash/exception running the application. The crash occurs in the C external function defined as :

function long ShellExecuteA( ulong hWnd, string Operation, string lpFile, string lpParameters, string lpDirectory, int nShowCmd ) LIBRARY "shell32.dll" alias for "ShellExecuteA;Ansi"

Error number: 21

Bad runtime reference at line ..


The crash/exception seems be related to the build 

- I one case the program feiled after a complete rebuild

- after a second fulll rebuild the program worked ok again


The description found in the appeon community is like this


Bad runtime function reference means, that there the called function is not found at the expected (internal) place in the compiled code. Usually a full build solves the problem.

I have not detected how to control this issue - a single full build does not help to avoid this problem.

Is there any experience / advice how to avoid this issue?

The function is defined in the main program as an external function - is there an alternate implementation ?

For example - is it more robust to create a .net assembly and execute the functions from an imported dll in pb 2019?


Gunnar Gisleberg

Locus Solutions AS


Roland Smith Accepted Answer Pending Moderation
  1. Thursday, 3 June 2021 12:42 PM UTC
  2. PowerBuilder
  3. # 1

It would work better using ShellExecuteW since PB strings are Unicode.

I have a working example here:


It uses ShellExecuteExW which passes arguments in a structure.

  1. Gunnar Gisleberg
  2. Friday, 4 June 2021 05:40 AM UTC
Thank you. I shall check this implementation
  1. Helpful
There are no comments made yet.
  • Page :
  • 1

There are no replies made for this question yet.
However, you are not allowed to reply to this question.