Barcode Xpress for ActiveX v13 - Updated
Tutorial: Create Your First Project
User Guide > Getting Started > Tutorial: Create Your First Project

This step-by-step C++ tutorial will guide you to build a complete application that analyzes a 1D barcode from an image and output the value and type the terminal.

Prerequisites:

Steps:

  1. Launch VC++ (below project has been tested in VS2013).
  2. Create a new CLR Empty project and name it BXTutorial.
  3. Add Windows Form to this project.
    1. Right-click on the project and select Add > New Item.
    2. Select UI > Windows Form, its default name is MyForm.
  4. Set application entry point.
    1. Add below code to MyForm.cpp:
      C++
      Copy Code
      #include "MyForm.h"
      using namespace System;
      using namespace System::Windows::Forms;
      [STAThread]
      void main(array<String^>^ args) {
           Application::EnableVisualStyles();
           Application::SetCompatibleTextRenderingDefault(false);
           BXTutorial::MyForm form;
           Application::Run(%form);
      }
      
    2. Right-click your project in the Solution Explorer and click Properties.
    3. Under Configuration Properties > Linker > Advanced, change Entry Point to "main" (without quotation marks).
    4. Under Configuration Properties > Linker > System, change SubSystem to Windows (/SUBSYSTEM/WINDOWS).
  5. Add ActiveX component to this project.
    1. Open the design view, right-click on the Toolbox panel and select Choose Items…
    2. On the dialog, go to the tab COM Components.
    3. Add Accusoft BarcodeXpress 13 and Accusoft ImagXpress 13 to your toolbox
    4. Drag the two controls to MyForm.
    5. Drag OpenFileDialog from Toolbox > Dialogs to MyForm.
    6. Select the component ImageXpress and set the property CtlAutoSize to ISIZE_BestFit.
  6. Add menu to MyForm
    1. From Toolbox > Menu&Toolbars, select MenuStrip and add to MyForm.
    2. Add a menu, "File",  and sub menu, "Open", named mnuOpen.
    3. Add an additional sub menu, "Exit", named mnuExit.
    4. Double-click on Open and add the code below:
      C++
      Copy Code
      private: System::Void mnuOpen_Click(System::Object^  sender, System::EventArgs^  e) {
           if (openFileDialog1->ShowDialog() == System::Windows::Forms::DialogResult::OK)
           {
                axImagXpress1->FileName = openFileDialog1->FileName;
           }
       }
      
    5. From the design window, double-click on Exit and add the code below:
      C++
      Copy Code
      private: System::Void mnuExit_Click(System::Object^  sender, System::EventArgs^  e) {
           Application::Exit();
      }
      
  7. Add button to MyForm.
    1. Add one button from Toolbox, set the name to btnReadBarcode and set Text to "Read 1D Barcode".
    2. Double-click on that button and add below code:
      C++
      Copy Code
      private: System::Void btnReadBarcode_Click(System::Object^  sender, System::EventArgs^  e) {
           // Set barcode type to BC_StyleUnknown value  - Barcode Xpress engine will search for all 1D barcodes.
           axBarcodeXpress1->SetBarcodeReaderType(BC_StyleUnknown);
           // Set the read region of interest to all zero
           // so the entire images is searched.
           axBarcodeXpress1->ReaderAreaHeight = 0;
           axBarcodeXpress1->ReaderAreaWidth = 0;
           axBarcodeXpress1->ReaderAreaX = 0;
           axBarcodeXpress1->ReaderAreaY = 0;
      
           if (axImagXpress1->hDIB == 0)
           {
                MessageBox::Show("Error: You must select an image!");
                return;
           }
       
           axBarcodeXpress1->AnalyzehDib(axImagXpress1->hDIB);
           int numBC = axBarcodeXpress1->NumBarcodes;
           String^ bcName;
           String^ bcResult;
           String^ result;
      
           for (int i = 0; i < numBC; i++)
           {
                axBarcodeXpress1->GetBarcode(i);
                bcName = axBarcodeXpress1->BarcodeCodeName;
                bcResult = axBarcodeXpress1->BarcodeResult;
                result += "#" + i.ToString() + " Type: " + bcName + " Value: " + bcResult + "\n";
           }
           MessageBox::Show(result);
      }
      
  8. Registration.
    1. To register Barcode Xpress and ImagXpress, add the following code to MyForm.h:
      C++
      Copy Code
      MyForm(void)
      {
           InitializeComponent();
           // The SetSolutionName, SetSolutionKey and possibly the SetOEMLicenseKey method must be called to distribute the runtime.  Note that the SolutionName, SolutionKey and OEMLicenseKey values shown below are only examples.
           //axBarcodeXpress1->SetSolutionName("YourSolutionName");
           //axBarcodeXpress1->SetSolutionKey(12345, 12345, 12345, 12345);
           //axBarcodeXpress1->SetOEMLicenseKey("1.0.AStringForOEMLicensingContactAccusoftSalesForMoreInformation...");
           //axImagXpress1->SetSolutionName("YourSolutionName");
           //axImagXpress1->SetSolutionKey(12345, 12345, 12345, 12345);
           //axImagXpress1->SetOEMLicenseKey("1.0.AStringForOEMLicensingContactAccusoftSalesForMoreInformation...");
      }
      
  9. Run the project.
    1. Select File > Open and choose one image with a 1D barcode on it.
    2. Click the Read 1D Barcode button.
    3. A dialog with the barcode result displays.