Page 1 of 2

XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Wed May 08, 2013 3:10 am
by 9236183
Hello,

I'm using XE4 CPP with latest TChart download v2013.08.130430 32 bit VCL source code version.

I'm trying to recompile an existing application the has a TChart and are getting the following error :-

[bcc32 Error] VclTee.TeeGDIPlus.hpp(59): E2015 Ambiguity between 'TGPRectF' and 'Advgdip::TGPRectF'
[bcc32 Error] VclTee.TeeGDIPlus.hpp(86): E2015 Ambiguity between 'TGPPointF' and 'Advgdip::TGPPointF'
[bcc32 Error] VclTee.TeeGDIPlus.hpp(119): E2015 Ambiguity between 'TGPPointF' and 'Advgdip::TGPPointF'

Sometimes the compile succeeds but the application will crash on launch. I'm not sure TChart is at fault for that aspect though.

Any help on this issue ?

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Wed May 08, 2013 3:20 am
by 9236183
full parser context for the first error :-

Unit1.cpp(6): #include Unit1.h
Unit1.h(14): #include C:\Program Files (x86)\Steema Software\TeeChart Pro 2013 Full Source Code\Sources\Compiled\Delphi18.win32\Include\VclTee.TeeGDIPlus.hpp
VclTee.TeeGDIPlus.hpp(39): namespace Vcltee
VclTee.TeeGDIPlus.hpp(41): namespace Vcltee::Teegdiplus
VclTee.TeeGDIPlus.hpp(54): class Vcltee::Teegdiplus::TGDIPlusCanvas

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Wed May 08, 2013 3:37 am
by 9236183
I just setup a clean test for a delphi win32 vcl application and it compiles and runs fine.

I also setup a clear cpp win32 vcl application and it produces the same bcc32 Ambiguity errors in VclTee.TeeGDIPlus.hpp.

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Wed May 08, 2013 8:30 am
by 9236183
Battled with this and a number of other XE4 issues today.

I tried uninstalling, removing all other IDE paths, and re-installing but this made no difference.

I have since found that it is related to header file order.

As long as the Steema includes are before in my case #include "AdvOfficePager.hpp" it will compile correctly.

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Wed May 08, 2013 2:36 pm
by yeray
Hi,
bdw wrote:I have since found that it is related to header file order.

As long as the Steema includes are before in my case #include "AdvOfficePager.hpp" it will compile correctly.
Thanks for sharing it!

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Wed May 08, 2013 3:52 pm
by 16565588
Hi, Yeray
in my case this did not help.
I've included AdvOfficePager to my very simple application (only TeeChart and AdvOfficePager on Form), but the errors are the same, sorry.

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Thu May 09, 2013 12:19 am
by 9236183
Yeray wrote: Thanks for sharing it!
Hello Yeray,

Will you be fixing the apparent scope conflict that seems to exist in VclTee.TeeGDIPlus.hpp and other GDI components ?

The three lines that come up are lines 39, 41, and 54.

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Thu May 09, 2013 12:21 am
by 9236183
anauta2014 wrote:Hi, Yeray
in my case this did not help.
I've included AdvOfficePager to my very simple application (only TeeChart and AdvOfficePager on Form), but the errors are the same, sorry.
I placed the VclTee.TeeGDIPlus.hpp include at the following location in my main form header file (in my case FrmMain.hpp) as follows :-

#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <VclTee.TeeGDIPlus.hpp>

I made sure it was before any other TMS or GDI related includes.

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Thu May 09, 2013 4:18 pm
by 16565588
In my case error ismnore complicated:
Compiler told that:
[bcc32 Error] VCLTee.TeeGDIPlus.hpp(23): E2209 Unable to open include file 'Winapi.GDIPAPI.hpp'
Full parser context
Unit5.cpp(6): #include Unit5.h
Unit5.h(12): #include d:\Rad Studio\PackgsXE4\TeeChart2013RADXE4\Delphi18.win32\include\VCLTee.TeeGDIPlus.hpp

And this file (Winapi.GDIPAPI.hpp) is really absent in the system.

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Wed May 15, 2013 2:58 pm
by yeray
Hello,

Could you please change this, in TeeGDIPlus.pas:

Code: Select all

  {$IFDEF D16}
  {$HPPEMIT 'typedef Gdiplus::Graphics TGPGraphics;'}
  {$HPPEMIT 'typedef Gdiplus::Brush TGPBrush;'}
  {$HPPEMIT 'typedef Gdiplus::Pen TGPPen;'}
  {$HPPEMIT 'typedef Gdiplus::Font TGPFont;'}
  {$HPPEMIT 'typedef Gdiplus::PrivateFontCollection TGPPrivateFontCollection;'}
  {$HPPEMIT 'typedef Gdiplus::RectF TGPRectF;'}
  {$HPPEMIT 'typedef Gdiplus::PointF TGPPointF;'}
  {$HPPEMIT 'typedef Gdiplus::GraphicsPath TGPGraphicsPath;'}
  {$ENDIF}
For this (just adding the "VclTee" prefix)?

Code: Select all

  {$IFDEF D16}
  {$HPPEMIT 'typedef VclTee::Gdiplus::Graphics TGPGraphics;'}
  {$HPPEMIT 'typedef VclTee::Gdiplus::Brush TGPBrush;'}
  {$HPPEMIT 'typedef VclTee::Gdiplus::Pen TGPPen;'}
  {$HPPEMIT 'typedef VclTee::Gdiplus::Font TGPFont;'}
  {$HPPEMIT 'typedef VclTee::Gdiplus::PrivateFontCollection TGPPrivateFontCollection;'}
  {$HPPEMIT 'typedef VclTee::Gdiplus::RectF TGPRectF;'}
  {$HPPEMIT 'typedef VclTee::Gdiplus::PointF TGPPointF;'}
  {$HPPEMIT 'typedef VclTee::Gdiplus::GraphicsPath TGPGraphicsPath;'}
  {$ENDIF}
Recompile the sources.
Could you please tell us if this solves the problem for you so we can apply the changes for the stable release?

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Thu May 16, 2013 6:16 am
by 16565588
It seems that this works

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Thu May 16, 2013 7:21 am
by narcis
Hi Vladimir,

Excellent. Thanks for your feedback. We are going to include the fix for the upcoming maintenance release.

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Thu May 16, 2013 9:22 am
by 16565588
Hi, Narcis
Sorry, but don't forget to add pathes for the CBuilder-XE-XE4, especially for X64, old request for the recompile/installer.
And may be you can repare the possibility to recompile packages for CB6? (I have to disable TeeTree and Tee3D for recompile).

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Thu May 16, 2013 9:28 am
by narcis
Hi Vladimir,
Sorry, but don't forget to add pathes for the CBuilder-XE-XE4, especially for X64, old request for the recompile/installer.
Yes, this has already been fixed for the upcoming version.
And may be you can repare the possibility to recompile packages for CB6? (I have to disable TeeTree and Tee3D for recompile).
Support for C++ Builder 6 will be discontinued in the version. It requires too much development time investment to adapt current TeeChart version to it considering that little users are still using it.

Re: XE4 VclTee.TeeGDIPlus.hpp ambiguity error

Posted: Fri May 17, 2013 10:52 am
by narcis
Hi Vladimir,
NarcĂ­s wrote: Excellent. Thanks for your feedback. We are going to include the fix for the upcoming maintenance release.
Looks like we are going to have to remove this solution as it broke standard environments. You can continue using it though.