bedeutung folgender makros



  • ich hab folgende makros in stdafx.h drin. was bedeutet es

    #define _SECURE_ATL 1
    


  • Also, ich weiß jetzt nicht, was genau es bewirkt, aber das Makro an sich definiert eine Variable _SECURE_ATL und weist ihr den Wert 1 zu. Wenn du dein Programm kompilierst, ersetzt der Präprozessor jedes Vorkommen vom _SECURE_ATL im Quellcode durch die 1 oder führt andere Präprozessoranweisungen aus (#ifdef etc.)



  • Es verändert das Verhalten einiger Funktionen.
    Mit #define _SECURE_ATL 1 bekommst du einige Security-Fixes, die aber z.T. inkompatibel mit älteren ATL Versionen sind.
    Mit #define _SECURE_ATL 0 bekommst du kompatibles Verhalten, das dafür z.T. Sicherheitsrisiken hat.

    Beispielsweise ist es mit #define _SECURE_ATL 0 erlaubt an bestimmte Funktionen NULL Parameter zu übergeben (altes, kompatibles Verhalten), mit #define _SECURE_ATL 1 ist es dann nichtmehr erlaubt.



  • hustbaer schrieb:

    Es verändert das Verhalten einiger Funktionen.
    Mit #define _SECURE_ATL 1 bekommst du einige Security-Fixes, die aber z.T. inkompatibel mit älteren ATL Versionen sind.
    Mit #define _SECURE_ATL 0 bekommst du kompatibles Verhalten, das dafür z.T. Sicherheitsrisiken hat.

    Beispielsweise ist es mit #define _SECURE_ATL 0 erlaubt an bestimmte Funktionen NULL Parameter zu übergeben (altes, kompatibles Verhalten), mit #define _SECURE_ATL 1 ist es dann nichtmehr erlaubt.

    vielen dank, das ist ein guter hinweis


Anmelden zum Antworten