<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.conecto.com.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rfermi</id>
	<title>Conecto wiki - Contribuições do usuário [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.conecto.com.br/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Rfermi"/>
	<link rel="alternate" type="text/html" href="https://wiki.conecto.com.br/index.php/Especial:Contribui%C3%A7%C3%B5es/Rfermi"/>
	<updated>2026-05-12T17:01:54Z</updated>
	<subtitle>Contribuições do usuário</subtitle>
	<generator>MediaWiki 1.36.0</generator>
	<entry>
		<id>https://wiki.conecto.com.br/index.php?title=Link_Din%C3%A2mico&amp;diff=1602</id>
		<title>Link Dinâmico</title>
		<link rel="alternate" type="text/html" href="https://wiki.conecto.com.br/index.php?title=Link_Din%C3%A2mico&amp;diff=1602"/>
		<updated>2014-11-14T17:08:30Z</updated>

		<summary type="html">&lt;p&gt;Rfermi: /* Estagios de compilação */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
&lt;br /&gt;
Um link dinâmico tem como principal objetivo utilizar funções contidas em bibliotecas em tempo de execução, sem a necessidade de incorporar o conteúdo desta ao aplicativo desenvolvido, implicando em uma diminuição de tamanho do arquivo compilado e menos alocação de memória.&lt;br /&gt;
&lt;br /&gt;
== Estagios de compilação ==&lt;br /&gt;
&lt;br /&gt;
A lista das etapas de compilação são[http://pt.wikipedia.org/wiki/Compilador]:&lt;br /&gt;
  - Análise léxica&lt;br /&gt;
  - Análise sintática &lt;br /&gt;
  - Análise semântica&lt;br /&gt;
  - Geração de código intermediário&lt;br /&gt;
  - Optimização de código&lt;br /&gt;
  - Geração de código final&lt;br /&gt;
&lt;br /&gt;
A primeira, segunda, e terceira etapas utilizam de algoritmos desenvolvido na sua grande maioria sobre linguagens livre do contexto, de maneira a gerar um código intermediário. Este processo consiste da tradução onde as instruções em símbolos utilizados pelo mecanismo do compilador.&lt;br /&gt;
Em seguida, ocorre a otimização do código que trata, entre outras rotinas, de eliminar instruções desnecessárias quando possível.&lt;br /&gt;
Na geração do código final, as instruções são traduzidas em linguagem de maquina, geralmente Assembly, para que a maquina possa executá-las.&lt;br /&gt;
&lt;br /&gt;
== Diferença entre linkedição dinâmica e estática ==&lt;br /&gt;
&lt;br /&gt;
A diferença entre as duas a diferença básica entre criar um link dinâmico ou estático está na fase da compilação, pois para a linkedição estática, normalmente utilizam-se diretivas de compilação, para sinalizar que deve-se incorporar ao programa final instruções, protótipos de funções e outros detalhes pertinentes a execução de uma função não-nativa ao software. Isto gera crescimento do tamanho do arquivo final e problemas com dependência/incompatibilidade com as bibliotecas.&lt;br /&gt;
Linkar dinamicamente, na realidade, é definir o endereço das funções da biblioteca que se utiliza, através de um protótipo abstraido para linguagem que está sendo utilizada.&lt;br /&gt;
&lt;br /&gt;
== Linkedição em C ==&lt;br /&gt;
&lt;br /&gt;
Abaixo está um exemplo de como linkar dinamicamente uma biblioteca, as funções ''dlopen'' e ''dlsym'' encontram-se no header dlfcn.h:&lt;br /&gt;
Admitâmos que deseja-se utilizar uma função com 3 parâmetros cuja seu retorno seja do tipo long.&lt;br /&gt;
&lt;br /&gt;
  int iDynamicLink(){&lt;br /&gt;
    void *hLibHandle;&lt;br /&gt;
    char *pszLibPath = &amp;quot;/usr/include/liblinking.so&amp;quot;;&lt;br /&gt;
    long (*LinkedFunct)(int FirstParam, double SecondParam, char *ThirdParam); // Exemplo de funcao generica&lt;br /&gt;
    long lResult;&lt;br /&gt;
    if ( (hLibHandle = dlopen(pszLibPath, RTLD_LAZY)) == NULL )&lt;br /&gt;
      return -1;&lt;br /&gt;
    LinkedFunct =&lt;br /&gt;
    (long (*)(int FirstParam, double SecondParam, char *ThirdParam))&lt;br /&gt;
        dlsym(hLibCliSitef, &amp;quot;LikedFunct&amp;quot;);&lt;br /&gt;
    // Exemplo de utilizacao&lt;br /&gt;
    lResult = LinkedFunction(1, 3.2, &amp;quot;Exemplo&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Rfermi</name></author>
	</entry>
	<entry>
		<id>https://wiki.conecto.com.br/index.php?title=Link_Din%C3%A2mico&amp;diff=1601</id>
		<title>Link Dinâmico</title>
		<link rel="alternate" type="text/html" href="https://wiki.conecto.com.br/index.php?title=Link_Din%C3%A2mico&amp;diff=1601"/>
		<updated>2014-11-14T17:06:39Z</updated>

		<summary type="html">&lt;p&gt;Rfermi: Criou página com '== Links ==  Um link dinâmico tem como principal objetivo utilizar funções contidas em bibliotecas em tempo de execução, sem a necessidade de incorporar o conteúdo desta...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Links ==&lt;br /&gt;
&lt;br /&gt;
Um link dinâmico tem como principal objetivo utilizar funções contidas em bibliotecas em tempo de execução, sem a necessidade de incorporar o conteúdo desta ao aplicativo desenvolvido, implicando em uma diminuição de tamanho do arquivo compilado e menos alocação de memória.&lt;br /&gt;
&lt;br /&gt;
== Estagios de compilação ==&lt;br /&gt;
&lt;br /&gt;
A lista das etapas de compilação são[http://pt.wikipedia.org/wiki/Compilador]:&lt;br /&gt;
  - Análise léxica&lt;br /&gt;
  - Análise sintática &lt;br /&gt;
  - Análise semântica&lt;br /&gt;
  - Geração de código intermediário&lt;br /&gt;
  - Optimização de código&lt;br /&gt;
  - Geração de código final&lt;br /&gt;
&lt;br /&gt;
A primeira, segunda, e terceira etapas utilizam de algoritmos desenvolvido na sua grande maioria sobre linguagens livre do contexto, de maneira a gerar um código intermediário que consiste da tradução onde as instruções encontram-se transformada em símbolos utilizados pelo mecanismo do compilador.&lt;br /&gt;
Em seguida, ocorre a otimização do código que trata, entre outras rotinas, de eliminar instruções desnecessárias quando possível.&lt;br /&gt;
Na geração do código final, as instruções são traduzidas em linguagem de maquina, geralmente Assembly, para que a maquina possa executá-las.&lt;br /&gt;
&lt;br /&gt;
== Diferença entre linkedição dinâmica e estática ==&lt;br /&gt;
&lt;br /&gt;
A diferença entre as duas a diferença básica entre criar um link dinâmico ou estático está na fase da compilação, pois para a linkedição estática, normalmente utilizam-se diretivas de compilação, para sinalizar que deve-se incorporar ao programa final instruções, protótipos de funções e outros detalhes pertinentes a execução de uma função não-nativa ao software. Isto gera crescimento do tamanho do arquivo final e problemas com dependência/incompatibilidade com as bibliotecas.&lt;br /&gt;
Linkar dinamicamente, na realidade, é definir o endereço das funções da biblioteca que se utiliza, através de um protótipo abstraido para linguagem que está sendo utilizada.&lt;br /&gt;
&lt;br /&gt;
== Linkedição em C ==&lt;br /&gt;
&lt;br /&gt;
Abaixo está um exemplo de como linkar dinamicamente uma biblioteca, as funções ''dlopen'' e ''dlsym'' encontram-se no header dlfcn.h:&lt;br /&gt;
Admitâmos que deseja-se utilizar uma função com 3 parâmetros cuja seu retorno seja do tipo long.&lt;br /&gt;
&lt;br /&gt;
  int iDynamicLink(){&lt;br /&gt;
    void *hLibHandle;&lt;br /&gt;
    char *pszLibPath = &amp;quot;/usr/include/liblinking.so&amp;quot;;&lt;br /&gt;
    long (*LinkedFunct)(int FirstParam, double SecondParam, char *ThirdParam); // Exemplo de funcao generica&lt;br /&gt;
    long lResult;&lt;br /&gt;
    if ( (hLibHandle = dlopen(pszLibPath, RTLD_LAZY)) == NULL )&lt;br /&gt;
      return -1;&lt;br /&gt;
    LinkedFunct =&lt;br /&gt;
    (long (*)(int FirstParam, double SecondParam, char *ThirdParam))&lt;br /&gt;
        dlsym(hLibCliSitef, &amp;quot;LikedFunct&amp;quot;);&lt;br /&gt;
    // Exemplo de utilizacao&lt;br /&gt;
    lResult = LinkedFunction(1, 3.2, &amp;quot;Exemplo&amp;quot;);&lt;br /&gt;
    return 0;&lt;br /&gt;
  }&lt;/div&gt;</summary>
		<author><name>Rfermi</name></author>
	</entry>
	<entry>
		<id>https://wiki.conecto.com.br/index.php?title=Venditor_API&amp;diff=1596</id>
		<title>Venditor API</title>
		<link rel="alternate" type="text/html" href="https://wiki.conecto.com.br/index.php?title=Venditor_API&amp;diff=1596"/>
		<updated>2014-11-06T13:09:09Z</updated>

		<summary type="html">&lt;p&gt;Rfermi: /* Venditor API */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Venditor API ==&lt;br /&gt;
A API do Venditor, em inglês Application Programming Interface é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.&lt;br /&gt;
Em outras palavras, a API do Venditor serve aos aplicativos externos, para que estes possam interagir em tempo de execução, alterando variáveis, criando rotinas específicas dentro de rotinas genéricas já existentes.&lt;br /&gt;
&lt;br /&gt;
== Funções da API ==&lt;br /&gt;
Abaixo é descrita a lista de funções existentes na API:&lt;br /&gt;
  - Autorizacao&lt;br /&gt;
  - Avaliar&lt;br /&gt;
  - CaixaDeMensagem&lt;br /&gt;
  - CaixaDeMensagemComHeader&lt;br /&gt;
  - CaixaDeMensagemComHeaderTimeout&lt;br /&gt;
  - Comando&lt;br /&gt;
  - Encerramento&lt;br /&gt;
  - EncerramentoErro&lt;br /&gt;
  - FimDeVenda&lt;br /&gt;
  - FimDeVendaCancelada&lt;br /&gt;
  - Layout&lt;br /&gt;
  - Leitura&lt;br /&gt;
  - Mensagem&lt;br /&gt;
  - Menu&lt;br /&gt;
  - MenuModo&lt;br /&gt;
  - MenuSelect&lt;br /&gt;
  - MenuItem&lt;br /&gt;
  - Passo&lt;br /&gt;
  - Passo_Extensao&lt;br /&gt;
  - Passo_GravarVenda&lt;br /&gt;
  - Passo_GravarDataEntry&lt;br /&gt;
  - Passo_Fim&lt;br /&gt;
  - Resposta&lt;br /&gt;
  - RespostaInterna&lt;br /&gt;
  - RecuperarTransacao&lt;br /&gt;
  - Subtotal&lt;br /&gt;
  - VariavelInterna&lt;br /&gt;
  - Variavel&lt;br /&gt;
  - Shell_Fim_de_Transacao&lt;br /&gt;
  - SimNao&lt;br /&gt;
  - SimNaoPinPad&lt;/div&gt;</summary>
		<author><name>Rfermi</name></author>
	</entry>
	<entry>
		<id>https://wiki.conecto.com.br/index.php?title=Venditor_API&amp;diff=1595</id>
		<title>Venditor API</title>
		<link rel="alternate" type="text/html" href="https://wiki.conecto.com.br/index.php?title=Venditor_API&amp;diff=1595"/>
		<updated>2014-11-06T13:08:31Z</updated>

		<summary type="html">&lt;p&gt;Rfermi: Criou página com '== Venditor API == A API do Venditor, em inglês Application Programming Interface é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das s...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Venditor API ==&lt;br /&gt;
A API do Venditor, em inglês Application Programming Interface é um conjunto de rotinas e padrões estabelecidos por um software para a utilização das suas funcionalidades por aplicativos que não pretendem envolver-se em detalhes da implementação do software, mas apenas usar seus serviços.&lt;br /&gt;
Em outras palavras, a API do Venditor serve aos aplicativos externos, para que estes possam interagir em tempo de execução, alterando variáveis, criando rotinas específicas dentro de rotinas genéricas já existentes.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Funções da API ==&lt;br /&gt;
Abaixo é descrita a lista de funções existentes na API:&lt;br /&gt;
  - Autorizacao&lt;br /&gt;
  - Avaliar&lt;br /&gt;
  - CaixaDeMensagem&lt;br /&gt;
  - CaixaDeMensagemComHeader&lt;br /&gt;
  - CaixaDeMensagemComHeaderTimeout&lt;br /&gt;
  - Comando&lt;br /&gt;
  - Encerramento&lt;br /&gt;
  - EncerramentoErro&lt;br /&gt;
  - FimDeVenda&lt;br /&gt;
  - FimDeVendaCancelada&lt;br /&gt;
  - Layout&lt;br /&gt;
  - Leitura&lt;br /&gt;
  - Mensagem&lt;br /&gt;
  - Menu&lt;br /&gt;
  - MenuModo&lt;br /&gt;
  - MenuSelect&lt;br /&gt;
  - MenuItem&lt;br /&gt;
  - Passo&lt;br /&gt;
  - Passo_Extensao&lt;br /&gt;
  - Passo_GravarVenda&lt;br /&gt;
  - Passo_GravarDataEntry&lt;br /&gt;
  - Passo_Fim&lt;br /&gt;
  - Resposta&lt;br /&gt;
  - RespostaInterna&lt;br /&gt;
  - RecuperarTransacao&lt;br /&gt;
  - Subtotal&lt;br /&gt;
  - VariavelInterna&lt;br /&gt;
  - Variavel&lt;br /&gt;
  - Shell_Fim_de_Transacao&lt;br /&gt;
  - SimNao&lt;br /&gt;
  - SimNaoPinPad&lt;/div&gt;</summary>
		<author><name>Rfermi</name></author>
	</entry>
</feed>