Was ist msvcrt.lib?



  • Hallo!

    Ich hatte bisher immer folgendes Problem:
    Wenn ich versucht habe in einer C++ .NET-Klassenbibliothek mittels new eine Instanz einer unmanaged Klasse anzulegen habe ich einen Linker-Error erhalten ("nicht aufgelöstes externes Symbol: new"). In einer .NET WindowsForms-Applikation ist es hingegen gelaufen.

    Jetzt habe ich herausgefunden wie ich das Problem lösen kann: ich muss die Datei msvcrt.lib linken (ist irgendwo im Internet gestanden.

    Jetzt frage ich mich nur: warum? Was ist denn in dieser Bibliothek msvcrt.lib definiert? Bei normalen Win32-Applikationen oder .NET-WinForms-Programmen ist sie auch nicht gelinkt und der New-Operator funktioniert problemlos. Es ist nur bei Klassenbibliotheken notwendig.

    Weiß jemand warum bzw. was die Datei macht?

    Wie gesagt: es funktioniert jetzt. Mich interessiert es nur und ich mag es außerdem nicht einfach ein Problem zu lösen, indem ich irgendwas linke, ohne zu wissen was ich da mache.

    Danke!

    mfg



  • Microsoft Visual C++ Run-Time Library ➡ msvcrt.lib
    Das brauchst du glaub ich nur dann, wenn du dein Programm statisch linkst, d.h die Funktionen nicht aus einer Dll mit anderen Programmen teilen willst/kannst. Dafür wird dein Programm aber auch aufgeblasen... 😃


Anmelden zum Antworten