universal crt



  • hallo leute

    hat die ucrt fuer mich als programmierer auch irgendwelche vor/nachteile ? irgendwie finde ich keine brauchbaren infos dazu im netz.

    Meep Meep



  • Der Vorteil ist, dass Du Dir keine Gedanken um Fixes oder Sicherheitslücken machen musst...
    Und Du musst weniger ausliefern. Weil der Kern der CRT jetzt zum OS gehört.
    Und das ist schon ein riesiger Vorteil.



  • hallo,

    wenn ich das richtig gelesen habe, liegen auch mallo, realloc, free... auch in der ucrt. also muesste dann auch theoretisch das erzeugen und freigeben von speicher nun ueber dll grenzen auch funktionieren. wie kann ich eigendlich ueberpruefen das wirklich die funktionen von der ucrt verwendet werden und nicht von einer anderen dll ?
    wo sehe ich ueberhaupt in visual c++ 2017 das die ucrt verwendet wird ? hab da nichts in den projekteigenschaften gefunden. oder ist das voraussetzung wenn ich unter Projekteigenschaften->Allgemein->Windows-SDK-Version eine 10er version hab?

    was ich auch noch suche und noch nicht fuendig geworden bin, ist eine liste aller funktionen die von der ucrt geliefert werden. das aufrufen der ucrt via GetProcAddress soll man bei der ucrt nicht machen (hab ich auf einer seite gelesen, weiß die url nicht mehr).

    danke

    Meep Meep



  • So wie ich CRT-Bibliotheksfunktionen verstehe, ersetzt die UCRT die komplette bisherige CRT.
    Und es kommt wohl auf die Windows-Version an (bzw. ob überhaupt UCRT installiert ist), welche DLLs zur Laufzeit herangezogen werden: Introducing the Universal CRT.



  • nein, leider nicht die komplette. funktionen die oeffters optimiert werden sind nicht in der ucrt. sind glaub ich sogar 2-3 string-funktionen dabei



  • Meep Meep schrieb:

    nein, leider nicht die komplette. funktionen die oeffters optimiert werden sind nicht in der ucrt. sind glaub ich sogar 2-3 string-funktionen dabei

    Was meinst Du?
    Natürlich können in der UCRT keine inline Funktionen enthalten sein. Das ist ja der Sinn, sonst könnten die nicht optimiert werden.

    Es ist die komplette CRT, d.h. alle Funktionen, die nicht inline definiert ist.



  • achso, wusste nicht das die funktionen inline definiert sind. hatte mich auf den text von James McNellis bezogen: https://blogs.msdn.microsoft.com/vcblog/2015/03/03/introducing-the-universal-crt/

    Some of the string functions (e.g., memcpy and strstr) are part of the VCRuntime (and not the Universal CRT) because these functions are more frequently updated by our compiler team to improve their performance and to update them to take advantage of new instruction sets (e.g. SSE and AVX). These functions are in the VCRuntime largely because that makes it easier for our compiler team to continue making those improvements.



  • Naja. Diese Funktionen sind ja wohl auch kaum "fehleranfällig"...
    Und nein: Sie sind nicht immer inline aber oft...
    Deshalb sind hier dennoch auch keine "security fixes" zu erwarten...