Intel® Fortran Compiler
Build applications that can scale for the future with optimized code designed for Intel® Xeon® and compatible processors.
28386 Discussions

Which DLLs need to be distributed?

hbell
Beginner
1,318 Views
In CVF 6.6, is there a quick way to determine all the DLLs and Activex components that are required to be distributed along with a compiled application?

Harry Bell
0 Kudos
12 Replies
Steven_L_Intel1
Employee
1,318 Views
Hmm. Well, DLLs is somewhat easy. If you also have Visual C installed, right click on the EXE or DLL and select View Dependencies. If not, look for LOADTEST.EXE in the X86USUPPORT folder of your CVF CD and copy that to the folder containing the image. Start a command prompt window and type:

LOADTEST -d yourprog.exe

Typically DFORRT.DLL will be there, or perhaps DFORMD.DLL if multithreaded. For most apps, that's all you need. Dialog-based apps will also need DFDLG100.DLL. Note that if DFORTTD.DLL or DFORMDD.DLL is listed, you've built a debug configuration and that's not redistributable. Rebuild as a Release configuration. Most systems will already have MSVCRT.DLL.

I don't know how to determine what OCX files you may need.

Steve
0 Kudos
Steven_L_Intel1
Employee
1,318 Views
Oh, I would be remiss in not pointing out that we provide a self-installing package that contains all the redistributable pieces - see http://compaq.com/fortran/visual/redist.html

Steve
0 Kudos
hbell
Beginner
1,318 Views
Thank you Steve. My version of loadtest.exe did not require the "-d" switch. As you seemed to suggest in your earlier reply, DFDLG100.DLL cannot be detected by loadtest.exe; are there other DLLs that are not picked up by loadtest.exe?

Also, I learned the hard way that kernel32.dll cannot simply be copied to the c:windowssystem directory of a target machine. DLLs apparently need to be "registered".
I take it that the executable at http://compaq.com/fortran/visual/redist.html will both 1. copy those DLLs included and 2. register them. Correct?

So how is DFDLG100.DLL registered? (I suspect that InstallShield or other install systems can register DLLs as well.)

Harry Bell
0 Kudos
Steven_L_Intel1
Employee
1,318 Views
KERNEL32.DLL is a system DLL - don't even think of copying it! One registers a DLL by the following command:

regsvr32 dllname.dll

Yes, the redistributables package takes care of this for you. See the web page for it for a list of the included components.

Steve
0 Kudos
hbell
Beginner
1,318 Views
So can I safely run the command: regsvr32 dllname
for each of the DLLs that the program loadtest.exe lists (including KERNEL32.DLL)?

Harry Bell
0 Kudos
Steven_L_Intel1
Employee
1,318 Views
Well, you can safely run it, yes. You should not copy or attempt to register any DLL that you can't find in a REDIST folder on the CVF CD-ROM. That's a short list.

Steve
0 Kudos
gfthomas8
Novice
1,318 Views
This is tricky. You need to get your hands on all the modules loaded by the process (your app, .exe). The key API functions are:

CreateToolhelpSnapshot
Module32First
Module32Next

Once you have the list, you'll need to ensure that the version is appropriate for your app.

HTH,
Gerry T.
0 Kudos
hbell
Beginner
1,318 Views
OK. Steve's last comment on this thread seems the easiest (ie. best) answer to me. In looking at my CD-ROM distribution disk, version 6.1 was the last I could find with a "redist" folder. Are the CVF version 6.1 redist group of files (DFORMD.DLL, DFORRT.DLL, FQWIN.HLP, and DFDLG100.DLL) sufficient for CVF version 6.6A applications that use DLLs? I guess I'm also curious why DFDLG100.DLL was excluded from the automatic installation application, VFRUN66BI.exe ( at http://compaq.com/fortran/visual/redist.html ).

Harry Bell
0 Kudos
Steven_L_Intel1
Employee
1,318 Views
No, the 6.1 DLLs cannot be used with 6.6 applications. But you can use the REDIST folders to tell you the names of redistributable DLLs - except that we've added to the list since 6.1, I think. The list on the web page is current.

I would say that the list you have is fine, though it is likely that your application does not need both DFORRT.DLL and DFORMD.DLL - the latter is used if you selected the threaded libraries. FQWIN.HLP is needed only for QuickWin applications.

Steve
0 Kudos
hbell
Beginner
1,318 Views
I wanted to resurrect this thread again to check a point on the redistributables (for CVF 6.6A in my case).
InstallShield Express 2.12 gives the option of registering the DLLs and other files. If I include all of the 10 files that get distributed in VFRUN66AI.EXE (or my version of CVF) and have them all registered automatically by InstallShield is that the same as running VFRUN66AI.EXE or are there other mysterious things that VFRUN66AI.EXE does?
Do the files fqwin.hlp and stdole2.tbl get registered in the same way as DLLs?

Harry Bell

0 Kudos
Steven_L_Intel1
Employee
1,318 Views
Harry,

The only file that needs to be registered is DFDLG100.DLL. VFRUN doesn't do anything other than copy the files and register that one DLL.

Steve
0 Kudos
durisinm
Novice
1,318 Views
Steve,

You referred to a file above from the Compaq Web site. Are resources such as this going to eventually be copied to Intel's site?

Mike
0 Kudos
Reply