manifest woes

Tech-Archive recommends: Fix windows errors by optimizing your registry



Hi,

I'm porting the Windows version of a C++ application from VC7.1 to
VC9. After I got rid of the tens of thousands of spurious warnings
about "deprecated" functions from the RTL and fixed numerous other
issues I am now banging my head against manifest issues.
The app depends on two dozen DLLs, most of which I don't own. Except
for some 3rd-party libs that come with solutions, the build is done
at the command line, using a bunch of (platform-independent) tools.
From what I've read it seems that the executable and all the DLLs it
depends on need manifests which specify the RTL versions. Is that
true?

The app doesn't load. When I look at that using depends.exe, I get
unresolved references to "MSVC?90*.DLL" in the executable itself as
well as in some of the DLLs. (I suppose depends.exe -- I have 2.2.6,
which is the newest from the web site -- does know how to deal with
this side-by-side stuff?)
So I figured those DLLs would need a manifest. Interestingly, some
of them are build from a solution and their project indeed specifies
that manifests should be generated and that the manifest tool should
embed it. When I manually use the manifest tool, however, it seems
unable to extract any manifest from those DLLs, so it seems none got
embedded.
The mt command line in the IDE shows that, contrary to all examples
I've seen, it tries to embed the manifest as resource #2, not #1, and
I don't see any way to change this. I suppose this doesn't matter?

I used mt.exe to manually embed the ones the linker emitted. However,
this doesn't help either. The tools I have at hand still show those
unresolved dependencies and the app doesn't load either.

When I open the executable as a project from within in the IDE and
start it from there, I'll get a run-time error due to "MSVCR90.dll"
(or "MSVCR90D.dll" for the debug version) being missing.

As always, MSDN has tons of information on manifests, but most of it
seems to be related to .NET stuff ("assemblies"?) and I can't find
anything helping me making progress.
<sigh>

I spent a whole day on this and I'm out of ideas now. What do
I have to do to get this working?

TIA,

Schobi
.



Relevant Pages

  • Re: VS 2005 and Manifest for runtime dlls
    ... My problem was that I wasn't sure if I need to deploy the dlls and ... would I need also the manifest from that directory. ... For me it turned out that I was including a third party dll that didn't have ... I'm having some problems with Visual Studio 2005 and even though I read ...
    (microsoft.public.vsnet.general)
  • VS2005 and isolated apps.
    ... VS2005 automatically embeds a manifest binding the app and dlls to the ...
    (microsoft.public.dotnet.languages.vc)
  • Re: Manifest files
    ... Yet I run into run-time error R6034 if I have no manifest file - the main executable uses the C and C++ RTL DLL & MFC DLL. ... Seems that I can get rid of Manifest files for dependent DLLs but not EXEs. ... [This seems to be the key to defining private assemblies - heaven knows why.] ...
    (microsoft.public.vc.language)
  • Re: Visual Studio 2005 problems.. "...the application configuration is incorrect..."
    ... You have to embed the manifest in your executable... ... C-runtime DLLs in your application's local folder. ... > Is anyone using Visual Studio 2005, and has anyone been able to ... > successfully transfer executables to their WinXP embedded images? ...
    (microsoft.public.windowsxp.embedded)
  • Manifest problems with MFC executable - VS2005
    ... I dont get such an error on running the release version. ... All EXE's and DLLs have been built using the multithreaded RTL DLL ... "Generate Manifest" is set to yes. ... A similar MFC EXE has no problem being run in Debug mode. ...
    (microsoft.public.vc.language)