About VCL for Visual C++

VCL for Visual C++ is a technology that allows Visual C++ developers to use most of the native Delphi and C++ Builder components without the need to rewrite them or to write any wrapper classes or ActiveX wrappers. The technology allows a direct usage of any VCL package in Visual C++. By using this technology you can write a complex Visual C++ application with just a few lines of code.

VCL for Visual C++ supports fully the OpenWire project .

The technology is a Copyright of Boian Mitov. If you are interested in obtaining a license to use the technology, please contact us directly at mitov@mitov.com.

The technology is used in the VideoLabSignalLabAudioLabVisionLab and PlotLab VCL libraries.



How it Works



The Visual C++ application will use a set of C++ classes to create instances of component proxies.

The library will call a VCLLoader DLL. The VCLLoader will load one or more VCL packages, and will create instances of the VCL components.

Support Levels


There are two levels of support in the current version of the technology.

Level 1 support:


  • Allows access to any published VCL property from a VC++ application.
  • Does not require VCL component source code to be available.



  • Does not allow access of public properties and public methods.
  • Requires a non natural C++ syntax to be used.


Suitable for :

  • VCL end users.


 Visual C++ Example:


// Create a button at 10, 10 with size 100, 30
CVCLControl Button1( h_Wnd, “TButton”, 10, 10, 100, 30 );

// Set the caption to “Demo Button”
Button1.Properties[ “Caption” ] = “Demo Button”;

// Set an OnClick event:
Button1.SetEvent( “OnClick”, &CMyDialog::OnClickHandler, this );


Level 2 support:


  • Allows full access to any published property, public functions and limited access to some public properties.
  • Provides natural VC++ class wrappers for the VCL components, and all the VC++ features can be used including code completion.



  • The VCL component source must be available for parsing, in order the VC++ proxy classes to be generated.


Suitable for :

  • VCL component vendors.


 Visual C++ Example:


// Create a button at 10, 10 with size 100, 30
CVCLButton Button1( h_Wnd, 10, 10, 100, 30 );

// Set the caption to “Demo Button”
Component1.Caption = “Demo Button”;


Set an OnClick event:

Component1.OnClick.SetEvent( this, &CMyDialog::OnClickHandler, );




The following products are developed with 'VCL for Visual C++' and are free for non commercial purposes: