Comment imprimer des codes-barres Aztec en Visual C++ (VC++)

Intégrez la génération de codes-barres Aztec haute vitesse dans vos applications Visual C++ en utilisant la police TrueType Barcodesoft BCSAztec et les composants COM.

Composants principaux requis

Pour implémenter l'encodage Aztec en VC++, assurez-vous que les fichiers suivants sont présents :

  • 1. bcsaztec.ttf : La police TrueType spécialisée pour le rendu du code-barres.
  • 2. cruflbcs.dll : La bibliothèque COM fournissant l'interface IAztec.
Remarque : Après l'installation, la DLL se trouve généralement dans :
C:\Program Files (x86)\Common Files\Barcodesoft\Fontutil\

Méthode 1 : Liaison tardive

Idéal pour un code indépendant de la version. Utilisez cette option lorsque les informations de type ne sont pas disponibles au moment de la compilation.

CoInitialize(NULL); 
CLSID clsid;
if (FAILED(::CLSIDFromProgID(L"cruflbcs.Aztec.1", &clsid))) return 0;

IDispatch* pIDispatch = NULL;
::CoCreateInstance(clsid, NULL, CLSCTX_INPROC_SERVER, IID_IDispatch, (void**)&pIDispatch);

// Appeler la méthode Encode
LPOLESTR szNameEncode = L"Encode";
DISPID dispid_encode;
pIDispatch->GetIDsOfNames(IID_NULL, &szNameEncode, 1, LOCALE_SYSTEM_DEFAULT, &dispid_encode);

VARIANTARG v[1];
v[0].vt = VT_BSTR; v[0].bstrVal = SysAllocString(L"Barcodesoft Sample");
DISPPARAMS dispParams = { v, NULL, 1, 0 };
VARIANT vResult;
pIDispatch->Invoke(dispid_encode, IID_NULL, GetUserDefaultLCID(), DISPATCH_METHOD, &dispParams, &vResult, NULL, NULL);

pIDispatch->Release();
CoUninitialize();

Méthode 2 : Liaison précoce

Recommandé pour une performance maximale. Nécessite l'accès à la bibliothèque de types au moment de la compilation.

#include <atlbase.h>
#include <atlconv.h>
#import "cruflbcs.dll"
using namespace cruflBCS;

USES_CONVERSION;
CoInitialize(NULL);
_bstr_t bstrOutput;
char pszToEncode[] = "Barcodesoft Sample";

try {
    cruflBCS::IAztecPtr pBcsAztec(__uuidof(CBcsAztec));
    bstrOutput = pBcsAztec->Encode(T2OLE(pszToEncode));} catch (const _com_error& e) {
    _tprintf(_T("Erreur : 0x%08x %s\n"), e.Error(), e.ErrorMessage());}
CoUninitialize();

Utilisation de MFC pour générer des classes wrapper

Étapes pour Visual Studio moderne :

  1. Sélectionnez Ajouter une classe dans le menu Projet.
  2. Choisissez Classe MFC à partir d'une bibliothèque de types.
  3. Sélectionnez Registre et localisez crUFLBCS.
  4. Ajoutez l'interface IAztec à votre projet.
  5. Initialisez à l'aide de OleInitialize(NULL).

// Implémentation MFC

CString strOutput;
IAztec *pAztecObj = new IAztec();
if (pAztecObj->CreateDispatch("cruflbcs.Aztec.1")) {
    strOutput = pAztecObj->Encode("Barcodesoft Sample");}