Knowledge Base

KB10859 - Delphi & C++Builder versions supported by DK10 3D.

The content of this KB is obsolete and can contain inaccurate information

This KB is valid only for DK10.0.1 and up.
Due to some internal limitations, the 3D code is compiled with custom DirectX import unit GisDirectXLite. The main reason for this is that is that the DirectX9 libraries provided with Delphi do not support full dynamic loading of the d3dx9_33.dll.

A quick example: Suppose you compiled DK10 code which does not even use the 3D capabilities:

  • Upon loading your application, Windows will try to bind DirectX libraries as well. This is because the TGIS_ViewerWND.Viewer3D property relies on the 3D stuff.
  • If DirectX 9c were not properly installed, it will cause a startup error of your application.
  • On the other hand, GisDirectXLite will bind application only upon a real use.
  • Delphi 2010 adds support to delayed keyword for late dll binding. However this keyword is not supported equally on C++Builder and not all DirectX functions were defined this way by Embarcadero

TatukGIS provides skeleton DirectX stub files. These are compatible with all supported versions of Delphi/C++ Builder. The DK-VCL is actually able to compile:

Version Win32 Win64 Supported libraries Default Alternative2)
2007 +   TatukGIS1), Clootie2) TatukGIS Clootie
2009 +   TatukGIS, Clootie TatukGIS Clootie
2010 +   TatukGIS, Embarcadero3) TatukGIS Embarcadero
XE +   TatukGIS, Embarcadero TatukGIS Embarcadero
XE2 + + TatukGIS, Embarcadero TatukGIS Embarcadero
1) DK: GisDirectXLite supporting full dynamic loading: included in DK10.0.1 and up
2) Clootie: Libraries provided at:
3) Embarcadero: Units included in Delphi/C++Builder

If you want compile code with Clootie/Embarcadero units, then GIS_USE_FULL_DIRECTX should be defined upon compilation.
Created: March 29, 2011, Modified: April 14, 2018