I am attempting to convert an application written in Net Express 5.1 to Visual COBOL 3.0.
Mostly everything is working fine apart from the following issue.
When this code is executed, built from NE 5.1.
CALL MEN-CALL USING MEN-PARAM
CANCEL MEN-CALL
In this case the CALL adds the called .dll to memory, which can be seen in a process explorer under the application. The .dll is also locked in its folder, stopping it from being deleted or moved.
After the called program has been executed and returned with GOBACK. The CANCEL command removes the called .dll from memory. Which can be seen when running a process explorer. The .dll is also not locked in its folder and could be deleted or moved, with the main application still running.
However, when the code is executed, built from VC 3.0.
In this case the CALL adds the called .dll to memory, which can be seen in a process explorer under the application. The .dll is also locked in its folder, stopping it from being deleted or moved.
After the called program has been executed and returned with GOBACK. The CANCEL command does not remove the called .dll from memory. Which can be seen when running a process explorer, it is still present. The .dll also remains locked in its folder and cannot be deleted or moved, until the main application stops running.
This causes a problem as the the application itself is designed for the user to create and test their own queries. Which are then compiled/linked in the application using DOS commands creating the called .dlls.
As the .dll is locked the first time it is called and the CANCEL doesn't release it. Subsequent attempts to build the .dll fail. The only way to release the lock is to leave the application and start it again.
Is there any way to release this lock in VC 3.0? Or a DOS command to release the lock?
Any help would be much appreciated.