Page 1 of 1

XE and TGdiPOBJ.hpp errors on compile

Posted: Fri May 24, 2013 11:21 am
by 16464982
When trying to compile and application that functions well with teechart 2012 with the new Teechart 2013 I get various messages like this
[BCC32 Error] TeeGDIPOBJ.hpp(47): E2238 Multiple declaration for '_fastcall TGPRegion::TGPRegion(void *)'
and
[BCC32 Error] TeeGDIPOBJ.hpp(290): E2238 Multiple declaration for '_fastcall TGPBitmap::TGPBitmap(void *)'

All the references in the project to the old Teechart 2012 has been removed and the new references to Teechart 2013 Added.

Creating a simple project with only a TChar component in it, compiles well.

I can see that there are two overloading definitions that are in conflict
__fastcall TGPRegion(void * nativeRegion)/* overload */;
__fastcall TGPRegion(HRGN hRgn)/* overload */;
HRGN is a typedef of HANDLE and HANDLE is a typedef of void *
but if it were an error then it should not compile the simple application

Any idea about what is happening and how to solve it?

Re: XE and TGdiPOBJ.hpp errors on compile

Posted: Fri May 24, 2013 2:37 pm
by narcis
Hi Servando,

TeeChart 2013 uses GDI+ by default. It's a known issue that this is sometimes failing with C++ Builder. To solve the problem set the rendering canvas back to GDI at the Chart -> 3D -> Render tab in the chart editor and remove TeeGDIPlus unit references in your project.

Re: XE and TGdiPOBJ.hpp errors on compile

Posted: Mon May 27, 2013 9:57 am
by 16464982
I have found that the problem occurs when compiling with the NO_STRICT directive.

in STRICT mode the application compiles well with GDI o GDI+

Thanks for all.
Servando.

Re: XE and TGdiPOBJ.hpp errors on compile

Posted: Thu Jun 27, 2013 4:49 pm
by 16461692
Hi,

We have the same problem in v2013.08.130521 on C++ Builder XE2.
As workarround we add the following code at line 55 of the file VCLTee.TeeGDIPlus.hpp

Code: Select all

class DELPHICLASS TGPPathGradientBrush;
But we hope Steema solve this problem.

Att,
Reinaldo César Guedes
Brazil