Der Martin: Windows-API: Speicherverbrauch der laufenden Anwendung abfragen

Beitrag lesen

Hallo Robert,

wsprintf(str, "RAM: %d kB", pmc.WorkingSetSize>>10);

woher weiß denn wsprintf hier, wie groß str ist? Oder weiß es das gar nicht

das weiß es tatsächlich nicht. Aber ich weiß es.

Note Do not use. Consider using one of the following functions instead: StringCbPrintf, StringCbPrintfEx, StringCchPrintf, or StringCchPrintfEx. See Security Considerations.

Ich mag solche Pauschalaussagen nicht. Weiter unten heißt es übrigens:

The maximum size of the buffer is 1,024 bytes.

Nanu, warum benutze ich wohl immer CHAR[1024] als Puffer für wsprintf()? 😉

Außerdem hat wsprintf() noch einen großen Vorteil gegenüber den als Alternativen vorgeschlagenen Funktionen: Es liefert mir als Ergebnis die Länge des erzeugten Strings. Sehr nützlich, wenn man einen String in einer Schleife Schritt für Schritt aufbauen will.

Live long and pros healthy,
 Martin

--
Fische, die bellen, beißen nicht.