CBuilder XE8中TeeChart组件发出的不需要的W8080警告

时间:2015-06-02 23:32:18

标签: c++builder teechart c++builder-xe8

在使用随该IDE分发的TeeChart组件的CBuilder XE8下编译项目时,我得到了大量的错误,如下所示:

[bcc32 Warning] GdiplusStringFormat.h(306): W8058 Cannot create pre-compiled header: initialized data in header
[bcc32 Warning] MI3Proc.cpp(719): W8080 'Gdiplus::FlatnessDefault' is declared but never used
[bcc32 Warning] MI3Proc.cpp(719): W8080 'Gdiplus::GenericSansSerifFontFamily' is declared but never used
[bcc32 Warning] MI3Proc.cpp(719): W8080 'Gdiplus::GenericSerifFontFamily' is declared but never used
[bcc32 Warning] MI3Proc.cpp(719): W8080 'Gdiplus::GenericMonospaceFontFamily' is declared but never used
[bcc32 Warning] MI3Proc.cpp(719): W8080 'Gdiplus::GenericSansSerifFontFamilyBuffer' is declared but never used
[bcc32 Warning] MI3Proc.cpp(719): W8080 'Gdiplus::GenericSerifFontFamilyBuffer' is declared but never used
[bcc32 Warning] MI3Proc.cpp(719): W8080 'Gdiplus::GenericMonospaceFontFamilyBuffer' is declared but never used
[bcc32 Warning] MI3Proc.cpp(719): W8080 'Gdiplus::GenericTypographicStringFormatBuffer' is declared but never used
[bcc32 Warning] MI3Proc.cpp(719): W8080 'Gdiplus::GenericDefaultStringFormatBuffer' is declared but never used

此问题也在Steema的http://www.teechart.net/support/viewtopic.php?f=3&t=15374支持论坛上报道,但没有后续跟进。

我在CBuilder 4下遇到了与TeeChart类似的问题(就像20年前一样!)。嗯。

我不想在项目范围内关闭W8080警告,因为它有助于保持我的代码清洁,但有没有办法关闭TeeChart单元的警告?

此外,我不确定如何处理W8058错误。 <{1}}位于#pragma hdrstop的包含之前,因此不应发生此错误。

编辑: 我发现的更多信息是,违规变量是在GdiplusEnums.h和GdiplusHeaders.h中声明和初始化的静态/常量全局变量(文件版权归2001年版本所有)。

暂时禁用8080警告不起作用,因为嵌套包含链中的某处,8080警告将重置为默认值。如果在编译器调用中禁用8080警告(即全局选项),则所有8080警告将停止,但是您不会发现自己的错误。即使将整个cpp单元放在VclTee.TeeGDIPlus.hpp块中也不会停止警告!

我发现停止警告的唯一方法(没有全局禁用8080警告)是在每个受影响的源单元中放置这样的虚拟代码(以便变量 引用)。

#pragma warn -8080

包含此代码的方法必须位于#pragma warn -8004块中以避免关于&#34; xxx被分配一个从未使用过的值&#34;。哎呀。

这确实冒犯了一些良好的编码风格,但你去了......

1 个答案:

答案 0 :(得分:0)

您可以使用html, body, div, span, object, iframe, h1, h2, h3, h4, h5, h6, p, blockquote, pre, abbr, address, cite, code, del, dfn, em, img, ins, kbd, q, samp, small, strong, sub, sup, var, b, i, dl, dt, dd, ol, ul, li, fieldset, form, label, legend, table, caption, tbody, tfoot, thead, tr, th, td, article, aside, canvas, details, figcaption, figure, footer, header, hgroup, menu, nav, section, summary, time, mark, audio, video { margin:0; border:0; padding:0; } 指令禁用W8080(或任何其他警告)。

我会在产生警告的标题之前添加它,因此您不需要修改标题。例如:

#pragma warn