views:

171

answers:

6

Hi

I was wondering what tools there are out there to generate single-EXE Windows apps, ie. with all the libraries compiled into a single EXE, without any dependencies whatsoever.

I know these:

  • Delphi
  • PowerBasic and other non-OO compilers like FirstBasic, etc.
  • RealBasic
  • C/C++

Do you of other tools?

Thank you.

A: 

Visual C++ 6. Windows ships with MFC or you can just write to the Win32 API.

geekboyUK
A: 

Well for modern versions of Windows that have the .NET framework preinstalled, any of the .NET langs are an obvious choice... VB.NET and C# have those nice GUI builders too :)

This is the M$ answer i suppose as they would say that .NET is not a dependency since its a core part of windows now. Not true for those running windows 2000 at least.

C-o-r-E
While you got down voted, I have to say there is some truth to this. While I would say that you can't assume people have .Net installed, especially with people still running older versions of Windows, I remember a time when not everydody had the MFC dlls, and programs like ICQ had to get you to install them separately. Now it's pretty much assumed you always have this stuff on your system.
Kibbee
I was by no means saying that everyone has .NET compatibily, That was the point of my mention of windows 2000. Personally I stay away from .NET all together, all my code is portable... or should I say that its only portable to modern general purpose CPUs with registers wider than 8 bits? :P
C-o-r-E
A: 

You can use modern Visual C++ to do this as well, if you choose the correct options for statically linking.

Another option is to provide all the side-by-side assemblies the in the same directory as your executable, using the correct scheme. But then your assemblies won't be updated by Windows Update.

Jared Oberhaus
+1  A: 

It's quite easy to roll various .NET files into a single file, if you're thusly inclined.

http://research.microsoft.com/en-us/people/mbarnett/ilmerge.aspx

Svend
Your merged assembly will still require the .Net framework, though, which seems to miss the "without any dependencies" requirement.
Iceman
A: 

I believe a Perl compiler still exists which compiles to a native binary (handles multiple target platforms).

Cade Roux
A: 

Fortran. It's called static linking.

ldigas