Page 1 of 1

TeeChart 2014.11 in a dll: Works in XE6, but not XE5

Posted: Wed Jun 25, 2014 11:09 am
by 16567885
Now here's a funny one: Thanks to the excellent article TeeChart and GDI+ inside a DLL we know that in previous versions, rendering a Chart with GDI+ in a dll required caution.

The changelog for 2014.11.140512 also states:
Protection against exceptions when using the GDI+ canvas from inside a dll.
If the GDIPLUS.dll is not initialized by the caller executable, TeeChart GDI+ canvas now will detect this problem and will use the old GDI canvas, instead of raising an exception
The problem: I have just tested your attached sample project from the blog page, as well as my own project. Only the binary installer for XE6 seems to contain the fix: If I build the dll with RAD Studio XE5, it will still bail out with an exception. If the dll was built on XE6, everything is fine.

I didn't try building TeeChart from source, I just used the binary installer of 2014.11.140512 for XE5 and for XE6. Maybe the XE5 installer is still containing some old files? Right-clicking on a TChart component however shows "2014.11.140512"

Is there something wrong on my end? I even tried another machine still running XE5 and the dll was also "faulty".

Re: TeeChart 2014.11 in a dll: Works in XE6, but not XE5

Posted: Wed Jun 25, 2014 5:14 pm
by 16567885
Sorry for further cluttering up the forum, but I can't find a way to edit my previous post.

As it turned out, it got nothing to do with XE5 or XE6. The "older" XE5 installations still contained a "Library-Translations"-path for an older instance of TeeChart 2013.09. This way, one would see "2014.11" on the form designer, but the compiler would smuggle old "2013.09" DCUs in. We were screaming bloody murder. Since RAD Studio always fails at stuff like "Open the VclTee.TeeConst.pas you're using" it was impossible to find out earlier.

Re: TeeChart 2014.11 in a dll: Works in XE6, but not XE5

Posted: Thu Jun 26, 2014 10:44 am
by yeray
Hi Jens,
jens.mertelmeyer wrote:As it turned out, it got nothing to do with XE5 or XE6. The "older" XE5 installations still contained a "Library-Translations"-path for an older instance of TeeChart 2013.09. This way, one would see "2014.11" on the form designer, but the compiler would smuggle old "2013.09" DCUs in. We were screaming bloody murder. Since RAD Studio always fails at stuff like "Open the VclTee.TeeConst.pas you're using" it was impossible to find out earlier.
I'm glad to hear you found it!
We use to recommend to double-check the paths to make sure there's no reference to an previous installation.