C6 apps won’t run after installing C7.1

My client reported a problem when attempting to run our project that was a bit baffling:

"The procedure entry point _18ProtectedHashTable__ct__@FiP15CriticalSection could not be located in the dynamic link library c60runx.dll"

Since all that we are sending back and forth are the applications and no binary files there was no way that we were mixing any binaries up, besides we are using the exact same builds of Clarion 6.3 - 9059 so this shouldn't be a problem at all.

After asking around I found out that the reason for this is that Clarion 7 includes a Clarion 6 compiled version of Topscan, which is not compiled local so they have to distribute the Clarion 6 versions of the DLLs with Clarion 7. In our case, the Clarion 7 Bin path has been added to the PATH variable, either manually or by an installer (we do not know which one if it has been done by an installer). Not just that, it has been added in front of the Clarion6\bin folder in the path causing the Clarion 6 application to pick up the C60RUNX.DLL from the Clarion 7\Bin folder rather than the Clarion6\Bin folder.

After some experimenting, I found that at least for Clarion 6.3 build 9059 I could have both BIN folders in the PATH as long as the Clarion 7 one was after the Clarion 6 one. The Clarion 6 apps still run without problems and the Clarion 7 Topscan also runs correctly and without problems as far as I can tell.

So, IF you want to put the Clarion 7 BIN folder into the path statement, make sure that you do that after the Clarion 6 BIN folder. Normally you do not need to do this, but if you don't want to copy DLLs to the application folder using the PATH do access the binary files is one way to do it.

Update: It appears that if you are using Clarion 6.3 build 9056 it does not conflict with the C60RUNX.DLL file in Clarion 7.

Arnor Baldvinsson

Leave a Reply