...someplace, where there isn't any trouble? Do you suppose there is such a place, Toto?

PREfast und MFC

Da meine Ansprüche an meinen eigenen Code dergestalt sind, dass er ungestreift mit PREfast übersetzt werden können muss, habe ich bei meinen MFC-basierten Anwendungen immer ein kleines Problem: Die Headerfiles der MFC sind nicht PREfast-compliant und an diesen Headern schraubt man selber nix rum. Daher benutze ich meist folgenden kleinen Trick: Während in der stdafx.h die MFC-Headerfiles eingelesen werden, schalte ich die notorischen PREfast-Warnungen der MFC-Headers aus und schalte sie hinterher ein. Das tue ich nur, wenn auch ein Übersetzungslauf mit PREfast ansteht, denn ansonsten erhalte ich Warnungen für nicht-existierende Warnungsnummern (nämlich die aus PREfast). Das ganze sieht also in einer stdafx.h von mir etwa so aus:

 

#ifdef _PREFAST_
#pragma warning (push)
#pragma warning (disable: 6387)
#endif ///_PREFAST_

#include <afxwin.h>        
#include <afxext.h>

/// include other stuff from MFC, yaddaa, yaddaa ...

#ifdef _PREFAST_
#pragma warning (pop)
#endif ///_PREFAST_

Durch das Makro _PREFAST_, das automatisch definiert ist, wenn ein Übersetzungslauf mit PREfast stattfindet, kann man somit sehr geschickt ganz selektiv die Warnung 6387 ausschalten.

Happy PREfasting, you know, I am!

Trackback address for this post

This is a captcha-picture. It is used to prevent mass-access by robots.
Please enter the characters from the image above. (case insensitive)

No feedback yet

Leave a comment


Your email address will not be revealed on this site.
(Line breaks become <br />)
(For my next comment on this site)
(Allow users to contact me through a message form -- Your email will not be revealed!)
This is a captcha-picture. It is used to prevent mass-access by robots.
Please enter the characters from the image above. (case insensitive)