Creating a setup file using Inno DLL?

Right I have a cosole app that uses FLTK and Multi-threaded Debug DLL
My question is, if I use a default wizard in Inno, will it look up dll files needed for my application ? Or do I have to support them ?

Anybody has got posibly ideas on better ways of geting my code running on any windows mashine ? I have been googleing the subject and have not found the satisfaing answer.

Cheers chaps
Inno does not have any clue what DLLs your application requires. You must tell it explicitly to deply required DLLs with your app.

The docs are pretty complete, and if you are interested you can put required DLLs in the user's system32 directory if not already present.

The simplest method would be to simply copy them to the same place your executable goes.


To find out what DLLs are used by your executable, get the handy little PeDump utility from Matt Pietrek:
http://www.wheaty.net/
(Find it in his downloads section.)

At the console prompt, run it with the name of your executable like this:

D:\myprog> pedump a.exe | grep \.[Dd][Ll][Ll]

If you don't have grep, shame (get it here http://www.wingrep.com/ ), or just run it anyway using more:

D:\myprog> pedump a.exe | more

and scroll down to the "Imports Table" for DLL names (and functions used in the DLLs).

You don't need to worry about "KERNEL32.DLL" or "msvcrt.dll" or other standard Windows DLLs, but everything else must be included with your installer.

Hope this helps.
Alright mate, let me first of all thank you for your help ...
I do have som additional questions tough.
Right this is a list of files I got following your much appreciated instructions
in C:\Windows\x86_microsoft.vc90.debugcrt_1fc8b3b9a1e18e3b_9.0.30729.1_none_bb1f6aa1308c35eb\
MSVCR90D.dll
MSVCP90D.dll
in C:\Windows\System32\
ole32.dll
SHELL32.dll
GDI32.dll
USER32.dll
KERNEL32.dll
COMCTL32.dll
WSOCK32.dll
Right any ideas what file should I ignore ? As far I can work out, they are all standard win dlls ?

Cheers mate
Last edited on
First off, recompile your application in "Release mode" (not "Debug mode") and give it another go.
I would distribute the MSVCR90D.dll with your application (in the same directory as your app) -- assuming this is not just one that gets used by the Debug mode application. All the other DLLs are standard windows DLLs.

Glad to have been of help.
Alright mate,

Thanks again for your time.
I did the release. Tried the same thing on it and it gave me the very same list of files ... Are you saying that MSVCP90D.dll is the only dll file I need to distribute with my executable ? And is it enought just to keep it in very same directory as my executable. Somehow I think I am misunderstanding you ...

You see Basicaly, I have got this simple application written in C++ using VS 2008 express ...
Ive got a few graphic classes using FLTK. My main() just creates a window attaches a few objects to it, and move them around at the press of a button.
I am spending a great deal of time lately, trying to teach myself C++(And Im doing rapid progress :-)). Ive looked thrue the fair amout of sites and it drives me mad, that there seems to be no simpe explanation on how to get my app runing on any windows machine. Althogh I know it must be very trivial.

So let me ask you for help one more time ... Let me rephrase my question. How do i create setupfile(installer) to my app, so it includes the dlls(and whatever else) needed for the run of my app and how do I figure out witchones are they ?

Basicaly how do I get my code from VS2008espress to the file that can be installed and ran on any windows machine.

Thank you for your help, much appreciated
Last edited on
A hint: don't assume people are stupid and restate the original question. It is like talking more loudly and slowly to people with an accent.

I did the release. Tried the same thing on it and it gave me the very same list of files ... Are you saying that MSVCP90D.dll is the only dll file I need to distribute with my executable ? And is it enought just to keep it in very same directory as my executable. Somehow I think I am misunderstanding you ...

You have it exactly.

FLTK, AFAIK, uses the native system to do its drawing -- hence you won't need to link with any special FLTK DLLs.

As for the Inno Setup stuff, just add your DLL to the [Files] section of your script:
Source: "MSVCP90D.DLL"; DestDir: "{app}"


Make sure that the MSVCP90D.DLL is in the same directory as your EXE when you have Inno compile the script.

Good luck!
Well mate,

Again thank you for your time and advice.
I am sincerely assuming that I am stupid ... And I didnt state my situation correctly ...

Anyway I did as you said. All the files in one folder. Ran the script. Yet once I had it instaled on another machine. The very same message poped out as earlier :

"the aplication has failed to start because it is side-by-side configuration is incorrect. please see the aplication event log or use the command-line sxstrace.exe"

What do I do ?
Ah, it is one of those obnoxious MS issues.

Alas, I don't know much about it. Try linking your application statically (with /MT) and see if that helps. If not, you need to delve into the world of Microsoft's CRT and manifests. (My condolences if you do.)

If you google "the application has failed to start because its side-by-side configuration is incorrect" you get a lot of hits. This one seemed to have some good links:
http://social.msdn.microsoft.com/Forums/en-US/vcgeneral/thread/36971526-95f3-4a9f-a601-1843c86332c1

Sorry I can't help more.
Alright mate,

As I said earlier, I appreciete your time and advice...
I havent gone thrue those links yet, but yeah they do look very prommising. Once Ill get thrue them Im gonna post a solution so that nobody has to go thrue this nightmare again :-)

Cheers mate
Topic archived. No new replies allowed.