Take the following steps to create and run a program that demonstrates how to read barcodes. Remember that the purpose of the tutorials is to provide you with a quick and easy way to generate a Barcode program.
1. |
Start Microsoft Visual Studio |
2. |
Select the File->New menu option, click the "Project" menu. |
3. |
From "Project Types" select "Other Languages" to expand it, then select "Visual C++" to expand it, then select "MFC". From the right window select "MFC Application". |
4. |
In the Project Name dialog box, enter " BarcodeTutor". |
5. |
In the Location dialog box, enter the <LEADTOOLS_INSTALLDIR>\Examples\ClassLibrary\MSVC directory of your LEAD installation. Then Click OK. Then click "Next". |
6. |
Choose "Dialog based" and click "Finish". |
7. |
Click the "Solution Explorer" tab, and then click the "BarcodeTutor" project to expand it. Click the Header files, then Open "BarcodeTutor.h". |
8. |
Add the following line immediately before the class CBarcodeTutorApp declaration, (keep in mind that you may have to change the path to the header files): |
|
#include "........\include\ClassLib\ltwrappr.h" |
9. |
Click the "Class View" tab. |
10. |
Click to open the "BarcodeTutor" classes branch. |
11. |
Click "CBarcodeTutorApp", and then double click the CBarcodeTutorApp(void) constructor. |
12. |
Add the following lines after |
LBase::LoadLibraries(LT_ALL_LEADLIB);L_TCHAR * pszLicenseFile = L"Replace this with the path to the LEADTOOLS license file";L_TCHAR * pszDeveloperKey = L"Replace this with your developer key";LSettings::SetLicenseFile(pszLicenseFile, pszDeveloperKey);
| 13. | Create a new file called Imports.cpp in place it beside your project files. | |
| a. | In the Project Workspace, click the Solution Explorer tab. | |
| b. | Double-click the BarcodeTutor folder to open it. | |
| c. | Right-click the Source files folder and select Add New item. | |
| d. | Expand the Visual C++ tree, if it is not already expanded. | |
| e. | Select Code from the sub tree. | |
| f. | Select C++ File (.cpp) from the right window. | |
| g. | In the Name text box, specify Imports.cpp | |
| h. | Click the Add button. | |
| i. | Double-click the imports.cpp in the solution Explorer and add the following lines: | |
#include "StdAfx.h"#if defined(WIN64)#pragma comment(lib, "..\\..\\..\\..\\Lib\\CDLL\\x64\\Ltwvc_x.lib")#else#pragma comment(lib, "..\\..\\..\\..\\Lib\\CDLL\\Win32\\Ltwvc_u.lib")#endif // #if defined(WIN64)
| 14. | Click on the "Class View" tab. | ||
| 15. | Right click "CBarcodeTutorDlg" and select Add "Add Variable..." | ||
| 16. | For Variable Type enter LBarCode, and for Variable Declaration put m_Barcode. Leave Access as "Public" and click OK. | ||
| 17. | Right click "CBarcodeTutorDlg" and select Add "Add Variable..." | ||
| 18. | For Variable Type enter LBitmapBase, and for Variable Declaration put m_Bitmap. Leave Access as "Public" and click OK. | ||
| 19. | Click on the "Solution Explorer" tab. | ||
| 20. | Double-click the "BarcodeTutor" folder to open it. | ||
| 21. | Double-click the "Resource Files" folder to open it. Then double click "BarcodeTutor.rc" file to open it, then double click "Dialog", and then double click "IDD_BARCODETUTOR_DIALOG" | ||
| 22. | Now, drag and drop 2 buttons, and change their properties as follows: | ||
| ID | Caption | ||
| Button1 | IDC_LOAD | Load Image | |
| Button2 | IDC_READ_BARCODE | Read Barcode | |
| 23. | From View menu, select "Other Windows" menu, then select "Resource View" menu, then select Dialog, and select "IDD_BARCODETUTOR_DIALOG" | ||
| 24. | Double click the "Load Image" button, and add the following code: | ||
m_Bitmap.SetFileName(MAKE_IMAGE_PATH(TEXT("barcode1.tif")));m_Bitmap.Load();
25. |
From View menu, select "Other Windows" menu, then select "Resource View" menu, then select Dialog, and select "IDD_BARCODETUTOR_DIALOG" |
26. |
Double click the "Read Barcode" button, and add the following code: |
BARCODE1D Bar1d;memset(&Bar1d, 0, sizeof(BARCODE1D));Bar1d.uStructSize = sizeof(BARCODE1D);Bar1d.bErrorCheck = TRUE;Bar1d.nGranularity = 9;Bar1d.nDirection = BARCODE_DIR_HORIZONTAL;BARCODEREADOPT BarReadOpts;memset(&BarReadOpts, 0, sizeof(BARCODEREADOPT));BarReadOpts.ulSearchType = BARCODE_1D_READ_ANYTYPE;BarReadOpts.nUnits = BARCODE_SCANLINES_PER_PIXELS;BarReadOpts.ulFlags = BARCODE_BLOCK_SEARCH;BarReadOpts.nMultipleMax = 0;SetRect(&BarReadOpts.rcSearch, 0, 0, 0, 0);BarReadOpts.bUseRgn = FALSE;BarReadOpts.BarColor.uStructSize = sizeof(BARCODECOLOR);BarReadOpts.BarColor.dwColorBar = RGB(0, 0, 0);BarReadOpts.BarColor.dwColorSpace = RGB(255, 255, 255);m_Barcode.SetReadOptions(&BarReadOpts);m_Barcode.SetBitmap(&m_Bitmap);// The Read method will search for all linear barcodes in the whole bitmapL_INT nRet = m_Barcode.Read(BARCODES_1D, &Bar1d, NULL);if (nRet > 0){pBARCODEDATA pBarData = NULL;L_INT nCount = nRet;L_CHAR szBuffer[MAX_PATH];for (L_INT i=0; i<nCount; i++){pBarData = m_Barcode.GetBarCodeDataItem(i);memset(szBuffer, 0, MAX_PATH);wsprintfA(szBuffer,"Barcode # %d\nData %s\nLeft %d\nTop %d\nRight %d\nBottom %d\n",i+1,pBarData->pszBarCodeData,pBarData->rcBarLocation.left,pBarData->rcBarLocation.top,pBarData->rcBarLocation.right,pBarData->rcBarLocation.bottom);MessageBoxA(m_hWnd, szBuffer, ("Barcode Data"), MB_OK);}}elseAfxMessageBox(TEXT("Failure while reading linear barcodes"));
27. |
Compile and test the program. |