[DUG] Type Library woes

Conor Boyd Conor.Boyd at trimble.co.nz
Mon May 29 17:00:37 NZST 2006


Welcome to the wonderful world of the Delphi Type Library Editor which
has been a POS since at least D4, and is no better in BDS2006. 

It may be easier to start again, and I'm not sure I've got a specific
solution to your problem, but here are some tips for the future:
*	Save often.
*	Regularly export your type library to an IDL file using the
Export button in the Type Library Editor - this way, if it goes AWOL,
you can at least get back to where you were by compiling the IDL using
Microsoft's MIDL.exe and re-importing the IDL.
*	Under Tools, Options, set the Type Library language to Pascal,
not IDL.
*	Under Tools, Options, set the SafeCall function mapping to All
v-table interfaces.
*	Never EVER use the Type Library Editor in the scenario where you
have your Server project and an associated Client project (e.g. the
Delphi project that's going to use the Type Library) open in the same
Delphi Project Group at the same time - this will be guaranteed to screw
up the Type Library Editor.
*	Save often.
*	Slaughter some chickens.

Good luck,

Conor

-----Original Message-----
From: delphi-bounces at ns3.123.co.nz [mailto:delphi-bounces at ns3.123.co.nz]
On Behalf Of Phil Middlemiss

I've suddenly started getting a translation error when I try and save
the type library for my automation object. I haven't changed anything in
the type library editor, but have been working on the automation object.

The warning I get when I try and save is "The type library T3SDK had
translation errors or warnings. Some information may be lost or
modified. Do you want to save with these modifications?"

I googled the error and the only english page with any reference to it
mentioned valid types so I double checked the types the library is using
and they are all automation compatible.

There is a hint in the Type Library Editor Status Bar saying "Hint: 
Typeinfo T3SDK changed to T3SDK_".

I have to change the TAutoObjectFactory.Create method to use T3SDK_
instead of T3SDK in order to compile, but then when I try and run the
host app, I get an EOleError exception:
"Type information missing for class TT3SDK".

Any ideas?

Phil.



More information about the Delphi mailing list