Getting error "This application has failed to start because mfsqlsmf.dll was not found"
Customer has a native code Visual COBOL application that uses OpenESQL to access a database through ODBC. The application is linked with the dynamic option so that it will find required run-time files in production by looking to the Registry entries for the COBOL Server product.
The application runs fine in Development when running under Visual COBOL but when the application is moved to the deployment computer on which COBOL Server is installed it displays the following error when it is run:
"This application has failed to start because mfsqlsmf.dll was not found. Re-installing the application may fix the problem."
The file mfsqlsmf.dll is in the COBOL Server\bin folder yet it cannot be found even though the application is linked as dynamic.
How can this be resolved without having to explicitly set the system PATH to include the bin folder?
If you add the sql directive:
to your application then it will no longer look for the file mfsqlsmf.dll and linking with the -rm option (dynamic link) will find the appropriate run-time files by using the registry and not the PATH.
This .dll is only required when turning certain trace options on but it is set as the default behavior.