Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Raize/TMS in the same project?

0 views
Skip to first unread message

Dave A. Law

unread,
Nov 16, 2005, 5:15:01 PM11/16/05
to
Has anyone successfully used both component libraries in the same project in
C++ Builder 6? When I tried I got an ambigious object error due to how they
both handle XP Themes. I was hoping to use them both but it doesn't look
possible unless someone has a solution for me.

Dave A. Law
NuFlo Measurement Systems


Ray Konopka

unread,
Nov 17, 2005, 4:00:28 AM11/17/05
to
Hi Dave,

What is the specific ambiguity that you are running into. Typically, you
can
resolve the ambiguity by editing the HPP file and adding :: to the type
in question.

Ray

-
Ray Konopka
Raize Software, Inc.

Jeff Weir

unread,
Nov 17, 2005, 8:09:22 AM11/17/05
to
Dave A. Law wrote:
> possible unless someone has a solution for me.

Ray include the Microsoft header files and that causes problems with
the values defined by TMS I suspect. Make sure you include a Raize
header files before any TMS ones in your source and make modifications
like below.

In the TMS .hpp files generated by C++Builder that define consts like
DTT_GRAYED and THEMEMGR_VERSION add the following (examples are from
Developers Express headers that I modified):

Example 1
---------

#ifndef dxUxThemeHPP
#define dxUxThemeHPP

#if !defined(_UXTHEME_H_)
.
.
static const Shortint DTT_GRAYED = 0x1;
.
.
#pragma delphiheader end.

#endif // !defined(_UXTHEME_H_)

//-- end unit
----------------------------------------------------------------
#endif // dxUxTheme

Example 2
---------

#ifndef dxThemeConstsHPP
#define dxThemeConstsHPP

#if !defined(TMSCHEMA_H)
.
.
static const Shortint THEMEMGR_VERSION = 0x1;
.
.
#pragma delphiheader end.

#endif // !defined(TMSCHEMA_H)

//-- end unit
----------------------------------------------------------------
#endif // dxThemeConsts

jeff

Ray Konopka

unread,
Nov 17, 2005, 2:19:53 PM11/17/05
to
Hi,

> Ray include the Microsoft header files and that causes problems with the
> values defined by TMS I suspect.

Instead of defining duplicates of the types that Microsoft created for
Theme support, Raize Components utilizes the actual header file that
Microsoft provides in the SDK. The conflict comes from other libraries
creating their own types using the same names as the SDK types
*and* not specifying the {$EXTERNALSYM xx} directives on those
new types.

For Raize Components, when the C++ header files are created, the
symbols that are defined for use in Delphi do not appear in the
hpp files used by C++. As a result, C++ will get the symbols from
the SDK *.h file.

Ray


Jeff Weir

unread,
Nov 17, 2005, 8:14:10 PM11/17/05
to
Ray Konopka wrote:
> Hi,
>
>
>>Ray include the Microsoft header files and that causes problems with the
>>values defined by TMS I suspect.
>

i should also have stated : Raize does it the correct way. Ray, i hope
you didn't think i was criticizing or complaining. :-)

regards,

jeff

Dave A. Law

unread,
Nov 18, 2005, 10:52:19 AM11/18/05
to
Thanks guys. I've been able to fix the problem and made TMS aware of this
issue.

Dave A. Law
NuFlo Measurement Systems

"Jeff Weir" <jeffw_blah@blah_canscale.com> wrote in message
news:437d2acb$1...@newsgroups.borland.com...

0 new messages