Neste artigo veremoscomo devemos fazer para declarar DLL's e comunicar com o ECF, visando àautomação comercial.


Para isso, utilizaremoso CSharp.NET, do Visual Studio 2010.


Antes falarei um poucodas vantagens de se usar uma DLL para desenvolver para aplicações de automaçãocomercial, mais focado nos Emissores de Cupom Fiscal, o ECF.


Todo equipamento possuium quadro de comandos que são interpretados por seu sistema operacional, ou seusoftware básico. Esses comandos normalmente são complicados de serem enviados erequerem um conhecimento a mais para serem usados, como por exemplo, as tabelasASCII, onde temos comandos de Controle, Decimais, Caracteres e Hexadecimais.


Mas o que a DLL temhaver com tudo isso? Simples. A DLL tem tudo haver com isso. Por quê?


A DLL nada mais é que uma biblioteca de comandos, onde conseguimos simplificara execução deles. Mas, como? Simples também. Vou dar um exemplo:


Eu tenho empresa onde todo final do mês tenho que fechar meu caixa, maseu preciso sempre tirar 10% do meu faturamento e pagar os impostos, e em cimadesses 10% preciso pagar 5% para o banco. Ao invés de eu sempre ter que fazeras contas, não seria mais fácil eu apenas inserir o valor do meu faturamento nacalculadora e ela me devolver quanto seria meus 10% e meus 5%?


A DLL trabalha dessaforma. Ela recebe seu comando simplificado, interpreta e envia para o ECFexecutá-lo, sem que você precise passar perto dos comandos do equipamento.

Bem, depois dessa breveexplicação, vamos colocar as mãos a obra!

Vamos iniciar nossoVisual Studio e abrir um Novo Projeto.


Em seguida, escolha aopção Windows Forms Application,coloque o nome ao seu projeto e dê Ok.

 

Com isso criamos nossonovo projeto e estamos prontos para começar.

Ficamos com essa caraentão em nosso Visual Studio.


Agora chegamos à partemais divertida: Declarar a DLL DarumaFramework.dll ;)


Para isso, vamos criarum novo Class. Clique sobre seu projeto no SolutionExplorer com o botão esquerdo, vá em Add/New Item e adicione uma Class.Ou aperte CTRL+SHIFT+A para abrir a tela para adicionar o novo item.


Ficamos então com 1Form1, 1 Class1 em nosso SolutionExplorer.

No arquivo Class1,vamos declarar as funções da DarumaFramework.dll.

Pode apagar o conteúdodo Class1, pois vamos iniciar do zero.


Adicione as seguintes usingsno arquivo Class1.


 

usingSystem;

usingSystem.Collections.Generic;

usingSystem.Text;

usingSystem.Runtime.InteropServices;

 

Com elas, poderemostrabalhar sem problemas com a DLL.

Após, criaremos um NameSpace,o qual darei o nome de DarumaFramework_DLL.

Digitamos então, após aultima using;


                                    namespace DarumaFramework_DLL;

 Como é um namespace,precisamos abrir e fechas as chaves.

                                    namespace DarumaFramework_DLL ;

{

}

 

Entre as chaves destenamespace, criaremos a classe ECF_Daruma, onde vamos declarar as funções da DLLe chamada dela.


Crie a public classECF_Daruma e já abra as chaves.


Vamos declarar apenasuma função da DLL, para que possamos passar para o próximo passo que também édivertido! ;)

 

Dentro do public class ECF_Daruma, vamos colocar aseguinte informação:

 

                                    [DllImport("DarumaFrameWork.dll")]

                                     public static extern intrVerificarImpressoraLigada_ECF_Daruma();

 

Nesse comando,indicamos que o comando rVerificarImpressoraLigada_ECF_Daruma(), está emexterno, e por isso indicamos onde está, no caso está em “DarumaFramework.dll”


Para cada método, énecessária a declaração dessa forma.


Ficamos então com nossoClass1 com essa cara:


Com isso, estamospronto para chamar a DLL e executar uma primeira função no nosso Form1!

Vamos deixar adeclaração de lado, e vamos trabalhar com nosso Form1, para isso abra ele.

Com ele aberto, devemosinserir a using do namespace que criamos, para indicar que usaremos eleno form.


Junto com as outras usings,insira:

 

using DarumaFramework_DLL;

 

Para facilitar oserviço, certifique-se de que o namespace do Form1 esteja com o nome donamespace da nossa declaração do arquivo Class1, no caso DarumaFramework_DLL.


Feito a conferência,vamos utilizar o método que inserimos agora há pouco.

Entre as chaves do Public Form1 e abaixo do InitializeComponent(); ,  chame a classe ECF_Daruma.


No caso das linguagensMicrosoft, temos o IntelliSense que filtra os comandos conforme vamosdigitando. Vamos usar bastante esse recurso no andar de nossos artigos.


Quando digitamos o “.”depois de ECF_Daruma, veja que ele já identifica as funções declaradas neste class.No nosso caso, aparecerá apenas o rVerificaImpressoraLigada, pois só declaramosela no arquivo Class1.


Como essa função nãotem parâmetros, nosso public form1ficará assim:

 

publicForm1()

{

InitializeComponent();

ECF_Daruma.rVerificarImpressoraLigada_ECF_Daruma();

}

 

Feito isso, nossoprograma já está chamando a DLL. Para realizarmos um teste, vamos adicionar um if em nossa função, que já verificará sea nossa impressora está ligada ou não.


Temos então essa cara:

        publicForm1()

        {

            InitializeComponent();

            if(ECF_Daruma.rVerificarImpressoraLigada_ECF_Daruma()!= 1)

            {

                MessageBox.Show("IMPRESSORA DESLIGADA.VERIFIQUE CONFIGURAÇÃO","DarumaFramework.dll");

            }

        }

Feito esses passos,podemos executar nosso projeto e fazer o teste!


Dê o Start Debugging (F5) e aguarde.


Se você tiver umaimpressora conectada ao computador e configurada corretamente, nenhum aviso iráaparecer.


No meu caso, estou semo equipamento instalado, então veremos que a mensagem de erro aparecerá emminha tela.


Com certeza você teráproblemas ao fazer o debug e o VS reportará erro dizendo que não encontrou omódulo DarumaFramework.dll, pois propositalmente não falei sobre a DLL e ondeela deve estar inserida.


Temos duas opções:

Primeira: Na mesmapasta da aplicação. No caso do Debug do VS, é dentro da pasta \bin\Debug\dentro da sua aplicação.

Segunda:\Windows\System32\


Com a DLL em mãos, acoloque na pasta de sua escolha. Eu prefiro colocar na pasta da aplicação, poisfica mais fácil de chegar até lá.

Ficamos então assim:


Feito! Podemos iniciarnovamente o Debug da nossa aplicação.

Como disseanteriormente, a mensagem de impressora desligada iria aparecer na minha tela.

Para testarmos aaplicação caso você tenha a impressoraligada no computador, faremos essa modificação no código:

 

        publicForm1()

        {

            InitializeComponent();

            if(ECF_Daruma.rVerificarImpressoraLigada_ECF_Daruma()!= 1)

            {

                MessageBox.Show("IMPRESSORA DESLIGADA.VERIFIQUE CONFIGURAÇÃO","DarumaFramework.dll");

            }

            else

                MessageBox.Show("IMPRESSORA LIGADA. PARABÉNS", "DarumaFramework.dll");

        }

 

Feita a alteração,mande rodar e vamos ver o que acontece!

 

Agora, se você não querter o trabalho de declarar as funções uma a uma, utilize nosso class já prontoe apenas importe para sua aplicação.


Espero que vocês tenhamaproveitado este artigo. Dúvidas? Postem! ;)