- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hello,
I recently migrated a DLL-project from CVF to IVF. The main executable that calls the DLL runs fine on my machine. However, when I copied the exectuable and the DLL on a co-worker's machine (both machines running on Windows XP Professional) and tried to execute it, I get the message "Application failed to initialize properly ". First, I thought that the culprit was the missing DLLs that my own DLL depends on. Copying these DLLs onto the co-worker's machine did not solve the problem. A quick search on the web suggests that it is a read-access permission issue and that the user of the DLL needs to execute a system command (CACLS) to set the permission levels properly. The problem with this is that the executable and the DLL will be distributed to an undefined number of people outside my office. Is there a way to go around this permission issue at the compile time and avoid having the users to set permissions on their own machines? This was not an issue with CVF.
Thanks for any help,
Jon
I recently migrated a DLL-project from CVF to IVF. The main executable that calls the DLL runs fine on my machine. However, when I copied the exectuable and the DLL on a co-worker's machine (both machines running on Windows XP Professional) and tried to execute it, I get the message "Application failed to initialize properly ". First, I thought that the culprit was the missing DLLs that my own DLL depends on. Copying these DLLs onto the co-worker's machine did not solve the problem. A quick search on the web suggests that it is a read-access permission issue and that the user of the DLL needs to execute a system command (CACLS) to set the permission levels properly. The problem with this is that the executable and the DLL will be distributed to an undefined number of people outside my office. Is there a way to go around this permission issue at the compile time and avoid having the users to set permissions on their own machines? This was not an issue with CVF.
Thanks for any help,
Jon
Link Copied
4 Replies
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
My guess is that the problem is actually that the needed Visual C++ run-time DLLs are not installed on the target system. See if installing the MS redistributable package on the other system solves the problem.
One has to be careful searching the web for an error message - one message may have many different possible causes. Don't assume that the first description you run across is the one applicable to your situation. I have never heard of CACLS and have not heard of it ever being needed to run an IVF application.
One has to be careful searching the web for an error message - one message may have many different possible causes. Don't assume that the first description you run across is the one applicable to your situation. I have never heard of CACLS and have not heard of it ever being needed to run an IVF application.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Steve,
Installing the MS redistributable package did not solve the problem. I am still getting the same error message. Which files am I supposed to distribute from my own project? I am currently only distributing the .dll file. Do I need to distribute any other files such as the manifest files? By the way, the executable that uses the dll is compiled by Lahey Fortran, if this makes any difference.
Thanks,
Jon
Installing the MS redistributable package did not solve the problem. I am still getting the same error message. Which files am I supposed to distribute from my own project? I am currently only distributing the .dll file. Do I need to distribute any other files such as the manifest files? By the way, the executable that uses the dll is compiled by Lahey Fortran, if this makes any difference.
Thanks,
Jon
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
You would also need to distribute the IVF run-time DLLs that your DLL references. These need to be placed in the folder of the executable, or a folder on PATH. If you download Dependency Walker, it can tell you which DLLs you depend on.
Since your DLL is not used by an Intel Fortran executable, you can change the Libraries property page to specify the Multithreaded (static) instead of Multithread DLL libraries and it is likely the problem would go away with that. Make sure you are not distributing a Debug-configuration DLL.
We are developing a redistributable installer to make this easier.
Since your DLL is not used by an Intel Fortran executable, you can change the Libraries property page to specify the Multithreaded (static) instead of Multithread DLL libraries and it is likely the problem would go away with that. Make sure you are not distributing a Debug-configuration DLL.
We are developing a redistributable installer to make this easier.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Thanks, Steve! The executable and the DLL is running fine on the target machine now. Switching to Multithreaded run-time libraries worked like a charm. Another good thing is that there are no redistributables to be installed now, so it makes my life much easier.
Jon
Jon

Reply
Topic Options
- Subscribe to RSS Feed
- Mark Topic as New
- Mark Topic as Read
- Float this Topic for Current User
- Bookmark
- Subscribe
- Printer Friendly Page