El siguiente ejemplo está dedicado a mi compañero Raul Vizcaino … No pierdas nunca las ganas de seguir aprendiendo… Lo prometido es deuda , y aquí lo tienes.

Aprovechando la libreria BarcodeLib vamos a crear un objeto .net para instanciarlo y listo

Podemos hacer el siguiente ejemplo en un proyecto en Visual Studio , donde es mucho mas cómodo , pero tambien podemos hacerlo así.

Crea un directorio , donde para el siguiente ejemplo está la libreria BarcodeLib.dll. Copia el siguiente código en un notepad y guardalo con el nombre PHSPictureBox.cs , notese que lo importante es la extensión del archivo *.cs

using System;
using System.Drawing;
using System.Windows.Forms;
using BarcodeLib;

namespace PHSPictureBox
{
    public partial class PHSPictureBox : PictureBox
    {
        private string _BarCode;
        private string _MessageError;
        private string _CodeType;
        private  BarcodeLib.TYPE UserType = BarcodeLib.TYPE.UPCA;

        	
	public string BarCode
        {
            get
            {
                return _BarCode;
            }
            set
            {
		_BarCode = value;
		LoadMyBarcode(_BarCode);
            }
        }

        public string CodeType
        {
            get
            {
                return _CodeType;
            }
            set
            {
                _CodeType = value;
                GetMyCode(_CodeType);
                if (! String.IsNullOrEmpty(BarCode) )
                {
                    LoadMyBarcode(BarCode);
                }
            }
        }

       public string MessageError
       {
            get
            {
                return _MessageError;
            }
            set
            {
                _MessageError = value;
            }
       }
		
       public PHSPictureBox()
       {
            this.BackColor = System.Drawing.Color.White;
            this.MaximumSize = new System.Drawing.Size(1900, 1060);
            this.MinimumSize = new System.Drawing.Size(50, 25);
            this.Name = "PHSPictureBox";
            this.Size = new System.Drawing.Size(203, 84);
       }


       private void GetMyCode(String Type)
       {
            if (String.IsNullOrEmpty(CodeType))
            {
                UserType = BarcodeLib.TYPE.UPCA;
            }
            else
            {
                /*
                Code 128 	Code 93 	Code 39 (Extended / Full ASCII)
                Code11 	    EAN-8 	    FIM (Facing Identification Mark)
                UPC-A 	    UPC-E 	    Pharmacode
                MSI 	    PostNet 	Standard 2 of 5
                ISBN 	    Codabar 	Interleaved 2 of 5
                ITF-14 	    Telepen 	UPC Supplemental 2
                JAN-13 	    EAN-13 	    UPC Supplemental 5
                */

                switch (Type)
                {
                    case "CODE128":
                        UserType = BarcodeLib.TYPE.CODE128;
                        break;
                    case "CODE11":
                        UserType = BarcodeLib.TYPE.CODE11;
                        break;
                    case "UPCA":
                        UserType = BarcodeLib.TYPE.UPCA;
                        break;
                    case "MSI":
                        UserType = BarcodeLib.TYPE.MSI_Mod11_Mod10;
                        break;
                    case "ISBN":
                        UserType = BarcodeLib.TYPE.ISBN;
                        break;
                    case "ITF14":
                        UserType = BarcodeLib.TYPE.ITF14;
                        break;
                    case "JAN13":
                        UserType = BarcodeLib.TYPE.JAN13;
                        break;
                    default:
                        UserType = BarcodeLib.TYPE.UPCA;
                        break;
                }
            }
       }

       public void LoadMyBarcode(string Code)
       {
            MessageError = "";
            try
            {
                BarcodeLib.Barcode b = new BarcodeLib.Barcode();
                b.IncludeLabel = true;
                this.Image = b.Encode(UserType, Code, Color.Black, Color.White, this.Width, this.Height);
            }
            catch(Exception ex)
            {
                MessageError = ex.ToString();
            }           
       }
    }
}

Siguiente , ejecutar la consola de Windows como administrador y ejecuta el siguiente comando. Doy por hecho que el net framework v4.0 está instalado

C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\csc /t:library /out:PHSPictureBox.dll /r:System.dll;System.Drawing.dll;System.Windows.Forms.dll;BarcodeLib.dll PHSPictureBox.cs

Si todo es correcto, se habrá generado la *.dll correspondiente.

Ahora ya puedes utilizarlo en tu SCADA , ya sea AVEVA Intouch, WinCC , Factory Talk View , IFIX etc… siempre y cuando soporte controles .Net
Te dejo aquí un pequeño ejemplo de como implementarlo en AVEVA Intouch Client Controls