Re: statische Libs

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

From: Martin Richter [MVP] (martin.richter_at_grutzeck.de)
Date: 05/12/04


Date: Wed, 12 May 2004 12:35:20 +0200

Hallo Ulrich Eckhardt!

> Kenn ich, aber da kommt die CRT (direkt oder indirekt) mit in die
> statische Lib.

Nein. Das hängt davon ab welche Version der CRT Du verwenden möchstest. Ich
bevorzuge grundsätzlich die CRT-Version als gesharte DLL.
Die CRT wird in keinem fall in die lib aufgenommen sondern Deine Objekt
Module haben einen Verweis auf eine entsprechende andere Externe Lib.

> Naja, CRT verwenden tut sie, aber ich sehe nicht ganz warum ich
> festlegen muß welche. Ich kann ja schließlich auch einfach von einer
> statischen Lib auf eine nur deklarierte Funktion zugreifen die dann
> von dem Programm welches meine Lib benutzt(oder auch indirekt über
> andere Libs) aufgelöst wird. Warum nicht auch mit der CRT?

Weil im schlechtesten Fall Dein Programm abraucht.
Wenn ein Speicherblock mit einer CRT Version allokiert wurde (also z.B.
statisch gelinkt), dann muss er auch mit der selben CRT-Version freigegeben
werden.
Wenn Du also new und delete außerhalb der Library auf Deine Objekte
ausführst und das auch intern machst *musst* Du die selbe CRT Version
verwenden.

-- 
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: Linkerproblem, wenn wmain/wWinMain in Lib stecken
    ... Von einer CRT steht da nämlich nichts, und man benötigt auch gar keine für reines Win32. ... Das VS hat in den beiden Testprojekten diesen Schalter automatisch gesetzt, trotzdem durchsucht der Linker nicht die Lib nach wmain bzw. wWinMain. ...
    (microsoft.public.de.vc)
  • Re: Linkerproblem, wenn wmain/wWinMain in Lib stecken
    ... Von einer CRT steht da ... Compiler erzeugt wurde auch immer mit der passenden CRT ... trotzdem durchsucht der Linker nicht die Lib nach ...
    (microsoft.public.de.vc)
  • Re: Different C runtime libraries
    ... >>> particular CRT implementation. ... The LIB advertises that it requires ... The linker ultimately decides how to ... > But the implementation of putc comes from the same CRT library as the ...
    (microsoft.public.vc.language)
  • Re: statische Libs
    ... >> statischen Lib auf eine nur deklarierte Funktion zugreifen die dann ... Warum nicht auch mit der CRT? ... > Weil im schlechtesten Fall Dein Programm abraucht. ...
    (microsoft.public.de.vc)
  • Re: undefined reference - leider unerklärbar .. ...
    ... "_popen" und nicht "popen". ... Ich versuche, Deine (und, wenn Du ... Du unterdrückst damit im Debug-Build die multithreaded Lib und im Release- ... Release-Build bis auf die gewünschten Ausnahmen gleich. ...
    (microsoft.public.de.vc)