From: David Ching on
"Oliver Regenfelder" <oliver.regenfelder(a)gmx.at> wrote in message
news:f2cee$4bd14ea3$54772cd9$12462(a)news.inode.at...
> Hello,
>
> David Ching wrote:
>> Sure, it's automatic for all your projects built with VS 2005/2008 using
>> a manifest (the default). The manifest built into your .exe gives the
>> exact version of the C Runtime, ATL, and MFC DLL's, and your .exe won't
>> load if those DLL's (or updated ones) are found.
>
> Would a VS2008 build fall back to using app-local dll's if the manifest
> is removed from the executable, if that is actually possible?
>

I believe if you remove (or disable the generation of) the manifest in your
..exe, then VS 2008 would indeed fall back to the same DLL Hell behavior of
VS 2018, which does mean using the DLL's in the local folder. But I've not
tried this. The difference is the VS 2008 DLL's have manifests in them, and
I'm not sure what happens when the .exe that loads them does not.

-- David


From: Giovanni Dicanio on
"John H." <oldman_fromthec(a)yahoo.com> ha scritto nel messaggio
news:e19781c3-0328-44f6-8ead-23a8c91d1721(a)11g2000yqr.googlegroups.com...

>> Also; if I need to take DLL's with me to run my dialog, how can I tell
>> what
>> DLL's I need?
>
> Try searching for a MS application called "dependency checker". You
> will probably be surprised at the number of libraries you are
> dependent on.

http://www.dependencywalker.com/

Giovanni


From: Tom Serface on
These days I try to use a few DLLs as possible. Of course, now that I'm
working on video stuff again I have CODEC hell rather than DLL hell.

It is surprisingly difficult to build an application without dependencies,
but I've taken to the idea of statically linking wherever possible.

Tom

"Giovanni Dicanio" <giovanniDOTdicanio(a)REMOVEMEgmail.com> wrote in message
news:O246S9v4KHA.3712(a)TK2MSFTNGP04.phx.gbl...
> "John H." <oldman_fromthec(a)yahoo.com> ha scritto nel messaggio
> news:e19781c3-0328-44f6-8ead-23a8c91d1721(a)11g2000yqr.googlegroups.com...
>
>>> Also; if I need to take DLL's with me to run my dialog, how can I tell
>>> what
>>> DLL's I need?
>>
>> Try searching for a MS application called "dependency checker". You
>> will probably be surprised at the number of libraries you are
>> dependent on.
>
> http://www.dependencywalker.com/
>
> Giovanni
>
>
From: Joseph M. Newcomer on
Generally, Microsoft has abandoned the concept that every release of the MFC library will
be backward-compatible with all earlier releases. They did this with MFC42.DLL, that
worked for many years and required immense expense and complexity to use.

So if you have DLLs built with VS < .exe version, you can safely assume that none of your
code will ever work correctly. If, by some miracle, it does, this is to be considered a
fortuitous accident at best.

But I wouldn't bet a product release on this assumption.
joe

On Fri, 23 Apr 2010 09:39:05 +0200, Oliver Regenfelder <oliver.regenfelder(a)gmx.at> wrote:

>Hello,
>
>David Ching wrote:
>> Sure, it's automatic for all your projects built with VS 2005/2008 using
>> a manifest (the default). The manifest built into your .exe gives the
>> exact version of the C Runtime, ATL, and MFC DLL's, and your .exe won't
>> load if those DLL's (or updated ones) are found.
>
>Would a VS2008 build fall back to using app-local dll's if the manifest
>is removed from the executable, if that is actually possible?
>
>Best regards,
>
>Oliver
Joseph M. Newcomer [MVP]
email: newcomer(a)flounder.com
Web: http://www.flounder.com
MVP Tips: http://www.flounder.com/mvp_tips.htm
From: Hector Santos on
JCO wrote:

> VS 2008; C++
> When creating a dialog application using MFC, I have the option to:
> 1. Use MFC in a Shared DLL
> 2. Use MFC in a Static Link DLL
>
> Can someone tell me the difference in the two?
> Can I change from one to the other while I'm still have programming to do?
> Will one of these options allow my Released Version of my Executable to
> run on another computer alone (without transferring a DLL to the other
> computer)?
>
> Also; if I need to take DLL's with me to run my dialog, how can I tell
> what DLL's I need?


Just a small note beyonds what others already noted.

There are two types of DLLs:

implicit
explicit

Implicit are the ones that your EXE has a static link to a DLL.

Explicit are the ones that your EXE will dynamically loaded at run
time. These applications use LoadLibrary() and GetProcAddress() to
dynamically link to a DLL.

You can get the implicit links using the DUMPBIN command:

DUMPBIN /IMPORT your_program.exe

This will report the *.DLLs that your application needs to start.

But to get the EXPLICIT DLLs, the EXE needs to actually run so the
LoadLibrary() commands can be called. This is what the popular
utility DEPENDS does very well by running and profiling the EXE.

DEPENDS can be downloaded from Microsoft

http://go.microsoft.com/fwlink/?linkid=132640

DEPENDS is a great tool to have (A MUST for all programmers), but
DUMPBIN /IMPORT gives you the DLLS that are required for your EXE to
even start, so thats a very quick way to see what is required to even
load the EXE.


--
HLS