There is an additional attribute in the DLL Tool element for the linker that is "LinkDLL" which is set to true.The RuntimeLibrary attribute for the EXE is different than it is for the DLL.The ConfigurationType attribute appears in the Configuration element for the DLL, but not for the exe.These are in the configuration, compiler and linker Tool elements in the project files: Also, in the dll proj file there is a Keyword attribute that is set equal to DLL and in the exe, it is set to "Console Application" In the exe project file, this attribute does not exist. There is little difference except for at the root level of the xml in the file for the dll project, there is a ProjectType attribute that is set equal to "typeDynamicLibrary". I then used a file comparison tool to compare the vfproj files from both.
How I did this was to create an empty project as a dll. So, what I did was to create a separate project file for the DLL project, and leave the EXE project file as it was - which is what Ian suggests. It appears that once the configuration type is set, it is not changeable, as I noted, in the project properties. That I might always change my mind later is then of the reasons that I pretty much always start by putting code, other than the main program, in a static library.įor my particular case, I am moving away from the exe to the dll code. Unlike Microsoft VS C++ projects, the type of thing (lib/dll/exe) that a Fortran project builds is fixed when you initially create the Fortran project, if you want to create something different, you need to recreate the project.
Often I will have further projects that depend on the static library - test driver executables, alternative interfaces (C/matlab/excel/.), other things that seemed like good ideas at the time. This, typically, is my preferred approach.
Some additional specifications/settings may be required to export procedures in the DLL directly from code that is first compiled into the static library, depending on how you nominate the exported procedures. When built together as part of the same solution configuration, the three projects need to have consistent runtime library settings. A DLL project, that links against the static library and contains source files specific to the DLL (perhaps the actual exports from the DLL are thin wrapper procedures). An executable project, that links against the static library and contains source files specific to the executable (perhaps just the source of a Fortran main program). A static library project, that perhaps has the majority of source files and contains the "core" code of the thing you are writing in Fortran. Your usage is reset to zero at the end of the day (at midnight in the GMT timezone).Another option is to have three projects:
Select or drop the EXE files you want to convert in the designated area.Read and confirm your agreement with our Terms of Service, Privacy Policy and with the points made in the section "How we handle your files".
How to convert your EXE archives to other formats?