Re: Manifest+MFC80.dll = neue DLL-Hölle?

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance



Hallo Martin,
jetzt habt ihr mich verwirrt. Korrigiert mich bitte wenn ich da völlig
falsch liege.
Meiner Meinung nach beseitigt gerade das Manifest das DLL (-Hell) Problem.
In dem man die Version in den dependency's angibt (assembly identity
version=xxx) läuft man nicht Gefahr,
dass die falsche DLL verwendet wird. Ist die DLL nicht in dieser Version
vorhanden, dann startet die App nicht.
Probiers einfach mal aus, setze im deinem Manifest einer andere Version ein
und die App startet nicht.
Leider gibt das ne unverständliche Meldung dem Anwender aus, dass er die App
neu installieren soll.
Werden zusätzlich neuere DLL's (z.B. CRT) installiert, so stört das nicht,
da die alten wegen SxS erhalten bleiben.
Deine App sollte dadruch viel sicherer laufen. hoffe ich doch. Das gilt
natuerlich auch für die eigenen DLL's.

Gruss Alwin


"Martin Richter [MVP]" <martin.richter@xxxxxxxx> schrieb im Newsbeitrag
news:e3spap.16k.1@xxxxxxxxxxxxxxxxxxx
Hallo Alwin!

(auch auf die Gefahr hin dass das ein alter Hut für euch ist...)

Ist es... SCNR

du kannst dir direkt in der exe anschauen, welche manifests er
eingebunden
hat und...
[snip]

Nein! Das Problem ist ein anderes. Bau ein simple "Hello world" C
Programm, dass die CRT aei der 8.0 verwendet. In diesem Fall bekommt der
Linker automatisch eine Instruktion einen entsprechende Assembly
Dependancy zu erzeugen. Und das ist schon ein Problem... Man kann dann
das Manifest nicht mehr automatisch erzeugen lassen, weil immer die
Infos aus der CRT eine Dependancy zur Original-CRT erzeugen...


--
Martin Richter [MVP] WWJD
"In C we had to code our own bugs. In C++ we can inherit them."
FAQ : http://www.mpdvc.de
Samples: http://www.codeguru.com http://www.codeproject.com


.



Relevant Pages

  • Re: Manifest Hell - a thing of the past?
    ... just put the MFC and CRT DLLs in my program directory since the first MFC version of my program released in 1996. ... And I have never caused DLL Hell for anyone else by replacing someone's versions of MFC etc with the ones I am supplying. ... Putting the DLL's in your program directory is called App local installation. ... One reason MS pushed so hard for the manifest system is it let them issue patched DLL's that could override even the ones you had in your program directory. ...
    (microsoft.public.vc.mfc)
  • Re: Manifest Hell - a thing of the past?
    ... Putting the DLL's in your program directory is called App local installation. ... Of course the original idea of DLLs was that you only needed one copy of a DLL on your hard drive and lots of programs could share it. ... One reason MS pushed so hard for the manifest system is it let them issue patched DLL's that could override even the ones you had in your program directory. ...
    (microsoft.public.vc.mfc)
  • Re: ERROR_DLL_INIT_FAILED - HELP please
    ... manifest resolves the issue. ... copy of the CRT with each DLL. ... __declspecvoid MOD; ...
    (microsoft.public.vc.language)
  • Re: Runtime error R6034
    ... Derjenige der, die HIGHGUI100.DLL gebaut hat, der hat es irgendwie geschafft die Debug CRT und die Release CRT zu mischen. ... Die Debug CRT wird per Manifest geladen. ... Die Release DLL nicht. ...
    (microsoft.public.de.vc)
  • Re: Will DisableThreadLibraryCalls leak memory with libcmt?
    ... DLL version of the CRT, so recompiling the CRT with your app is not really ... While you might save in deployment, you would increase memory usage on the ...
    (microsoft.public.win32.programmer.kernel)