c++builder - Unwanted W8080 warnings from TeeChart component in CBuilder XE8 -


when compiling project under cbuilder xe8 uses teechart components distributed ide, long reams of errors this:

[bcc32 warning] gdiplusstringformat.h(306): w8058 cannot create pre-compiled header: initialized data in header [bcc32 warning] mi3proc.cpp(719): w8080 'gdiplus::flatnessdefault' declared never used [bcc32 warning] mi3proc.cpp(719): w8080 'gdiplus::genericsansseriffontfamily' declared never used [bcc32 warning] mi3proc.cpp(719): w8080 'gdiplus::genericseriffontfamily' declared never used [bcc32 warning] mi3proc.cpp(719): w8080 'gdiplus::genericmonospacefontfamily' declared never used [bcc32 warning] mi3proc.cpp(719): w8080 'gdiplus::genericsansseriffontfamilybuffer' declared never used [bcc32 warning] mi3proc.cpp(719): w8080 'gdiplus::genericseriffontfamilybuffer' declared never used [bcc32 warning] mi3proc.cpp(719): w8080 'gdiplus::genericmonospacefontfamilybuffer' declared never used [bcc32 warning] mi3proc.cpp(719): w8080 'gdiplus::generictypographicstringformatbuffer' declared never used [bcc32 warning] mi3proc.cpp(719): w8080 'gdiplus::genericdefaultstringformatbuffer' declared never used 

this problem reported on steema's support forum @ http://www.teechart.net/support/viewtopic.php?f=3&t=15374, there no followup.

i had similar issue teechart under cbuilder 4 (something 20 years ago!). hmmm.

i don't want turn off w8080 warning project-wide, helps keep code clean, there way turn off warnings teechart unit?

additionally, i'm not sure make of w8058 error. #pragma hdrstop precedes include of vcltee.teegdiplus.hpp, error should not occurring.

edit: more information i've discovered offending variables static/const global variable declared , initialized in gdiplusenums.h , gdiplusheaders.h (files copyright 2001 microsoft).

temporarily disabling 8080 warning not work because somewhere in chain of nested includes, 8080 warning reset default. if disable 8080 warning in call compiler (i.e. global options), 8080 warnings cease, don't catch own mistakes. putting entire cpp unit in #pragma warn -8080 block not stop warnings!

the way i've found stop warnings (without globally disabling 8080 warning) put dummy code somewhere in each affected source unit (so variables are referenced).

   void           *pvdummy;    double         ddummy;    byte           *pbytedummy;     ddummy = gdiplus::flatnessdefault;    pvdummy = gdiplus::genericsansseriffontfamily;    pvdummy = gdiplus::genericseriffontfamily;    pvdummy = gdiplus::genericmonospacefontfamily;    pbytedummy = gdiplus::genericsansseriffontfamilybuffer;    pbytedummy = gdiplus::genericseriffontfamilybuffer;    pbytedummy = gdiplus::genericmonospacefontfamilybuffer;    pbytedummy = gdiplus::generictypographicstringformatbuffer;    pbytedummy = gdiplus::genericdefaultstringformatbuffer; 

the method containing code has in #pragma warn -8004 block avoid warnings "xxx assigned value never used". grrr.

this offend sense of coding style, there go...

you can disable w8080 (or other warning) using #pragma warn directive.

i add before header produces warnings, don't modify header. example:

#pragma warn -8080 #include <theoffendingheader.h> #pragma warn .8080 

Comments

Popular posts from this blog

python - TypeError: start must be a integer -

c# - DevExpress RepositoryItemComboBox BackColor property ignored -

django - Creating multiple model instances in DRF3 -