Jump to content

  • Log In with Google      Sign In   
  • Create Account


#ActualBitMaster

Posted 16 October 2012 - 09:15 AM

Both the runtime and DirectX need to be installed by their respective installers. There are several techniques to transparently install them from your own installer, which exactly depends on the Installer creator utility you will be using.

3rd party libraries of your own choosing should generally be placed next to your executable.

You cannot just include DLLs into an executable. Well, you could burn them into the executable as binary data, extract them before starting the actual program and then start the program. But that would be a huge mess and will most likely require a lot of care to work on Vista/7. For all practical purposes the answer is "no".

If you do not want DLLs, don't link to them. Compile your program with /MT. All libraries you are statically linking need to be compiled with /MT as well then. You cannot avoid the DirectX installer as far as I know, but shouldn't Vista/7 come with DirectX 10/11 preinstalled anyway? Otherwise you could use OpenGL. opengl32.dll is guaranteed to be installed already.

Link 3rd party libraries you are using statically. That might require a lot of work because you need to generally compile them yourself and often implement building them with /MT in the first place. If you cannot link the library statically (for example because it is LGPL or closed source), then you must have at least that DLL next to your executable.

#1BitMaster

Posted 16 October 2012 - 09:14 AM

Both the runtime and DirectX need to be installed by their respective installers. There are several techniques to transparently install them from your own installer, which exactly depends on the Installer creator utility you will be using.

3rd party libraries of your own choosing should generally be placed next to your executable.

You cannot just include DLLs into an executable. Well, you could burn them into the executable as binary data, extract them before starting the actual program and then start the program. But that would be a huge mess and will most likely require a lot of care to work on Vista/7. For all practical purposes the answer is "no".

If you do not want DLLs, don't link to them. Compile your program with /MT. All libraries you are statically linking need to be compiled with /MT as well then. You cannot avoid the DirectX installer as far as I know, but shouldn't Vista/7 come with DirectX 10/11 preinstalled anyway? Otherwise you could use OpenGL.

Link 3rd party libraries you are using statically. That might require a lot of work because you need to generally compile them yourself and often implement building them with /MT in the first place. If you cannot link the library statically (for example because it is LGPL or closed source), then you must have at least that DLL next to your executable.

PARTNERS