Jump to content

dev botao

Acbrframework.net Activex No Visual Foxpro


  • Este tópico foi criado há 4018 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Salve ,salve,

meu primeiro post,

 

baixei a dll pra com, no entanto, nao consegui exito em instancia-la em visual foxpro 9.

Registrei conforme orientado.

C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe C:\Users\Cleiton\Downloads\ACBrCom\ACBrFramework.Net.dll

 

no Visual foxpro, estou com dificuldades, alguem poderia dar uma ajuda ?

 

oAcbr = ''

oAcbr = CreatObject('ACBrFramework_Net.ACBrECF')

Me retorna Class Definition 'ACBrFramework_Net.ACBrECF' is not found

 

alguem pode orientar ?

 

Obrigado

 

Cleiton Fidelis

Divinopolis MG

Cleiton Fidelis

Divinópolis MG 

[email protected]

Link to comment
Share on other sites

Rapaz como é seu primeiro post vou separar o topico e apenas avisar para ler as regras.

 

http://www.projetoacbr.com.br/forum/index.php?/forum-13/announcement-1-sim-n%C3%B3s-temos-regras/

 

Sobre a utilização dele em foxpro nunca foi testado, se for igual no vb é so registrar a dll conforme o post

 

 

também notei que seu comando para registro da dll estava incorreto.

 

Link to comment
Share on other sites

Obrigado Rafael...

 

como o topico aberto era  Duvidas Em Relação Ao Acbrframework.net Activex

e estava recente, eu nao vi a necessidade de abrir outro topico, mas obrigado.

 

Com respeito ao registro da dll foi um comando copiado aqui do forum e colado.

 

No mais agradeço a orientação vou me ater mais...

Cleiton Fidelis

Divinópolis MG 

[email protected]

Link to comment
Share on other sites

não sei onde você copiou o comando mas faltou no seu comando /codebase

C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe c:\Onde_está_sua_DLL\ACBrFramework.Net.dll /codebase

O seu esta assim

C:\Windows\Microsoft.NET\Framework\v2.0.50727\RegAsm.exe C:\Users\Cleiton\Downloads\ACBrCom\ACBrFramework.Net.dll

Sobre o topico, sim é sobre duvida sobre o Activex e não sobre como utilizar o activex.

Para exemplificar o topico la é sobre como fazer o cominterop, enquanto você gostaria de saber se alguém teria uma dica de como usar em foxpro.

 

Link to comment
Share on other sites

Apenas para fins de conhecimento de outros.. como eu.

 

baixei os arquivos pelo https://acbr.svn.sourceforge.net/svnroot/acbr/ACBrFramework

 

Dentro da pasta D:\ACBrFramework\ACBrFramework\Exemplos\XBase existe um pqno e valioso exemplo feito em visual foxpro com a ACBR32.dll

Vou estuda-los

 

 

Obrigado

 

Abraços

Cleiton Fidelis

Divinópolis MG 

[email protected]

Link to comment
Share on other sites

A dll ACBR32.dll foi descontinuada e não vai ter mais updates dela.

Agora so existe a ACBrFramework32.dll.

 

Rs. eu estava indo tão bem...

 

Sabe se existe algum aquivo de declaração da dll para o AcbrFrameWork32.dll ?

Pelo que notei, faltam muitas funcoes (novas funcoes) não declaradas no acbr32dll_dec.prg.

Resolvi substituir acbr32.dll por acbrFramework32.dll, tive alguns retornos de erros na hora de declarar...

 

Obrigado pela dica da descontinuidade.

 

A dll ACBR32.dll foi descontinuada e não vai ter mais updates dela.

Agora so existe a ACBrFramework32.dll.

Cleiton Fidelis

Divinópolis MG 

[email protected]

Link to comment
Share on other sites

 

Sabe se existe algum aquivo de declaração da dll para o AcbrFrameWork32.dll ?

Pelo que notei, faltam muitas funcoes (novas funcoes) não declaradas no acbr32dll_dec.prg.

Resolvi substituir acbr32.dll por acbrFramework32.dll, tive alguns retornos de erros na hora de declarar...

 

Obrigado pela dica da descontinuidade.

 

O uso da DLL nativa no VB6 e Fox também foi descontinuado.

Para você usar o exemplo da ACBr32.dll substituindo pela ACBrFramework32.dll precisaria de algumas coisas:

 

1 - Atualizar as declarações de funções da DLL Nativa ACBrFramework32.dll para usar no Fox ... nós temos essas declarações em C#, C e Java. Aí vai depender do que for mais fácil pra portar. As declarações em VB6 e xBase (Fox) foram descontinuadas.

 

2 - Compilar em STDCALL. Hoje ela só compila em CDECL, o modo STDCALL foi descontinuado e a turma do Fox e VB6 não é capaz de usá-la diretamente, pois essas linguagens não suportam outra convenção senão a STDCALL.

 

(...)

 

Com certeza vocês devem estar pensando:

Por que raios vocês descontinuaram uma DLL tão bacana assim? O exemplo funcionava legal pra caramba! Nossa vocês são uns malas mesmo!!!

 

Eu explico:

 

Chegamos num ponto do projeto onde as funções ficaram mais complexas, situações que retornam e recebem ponteiros, arrays, structs, ponteiros de função, etc. E simplesmente não conseguimos fazer declarações dessas funções compatíveis com VB6 e xBase. Não iria adiantar continuar pois nessas linguagens métodos importantes ficariam de fora.

 

Então descontinuamos a compilação STDCALL e focamos apenas no CDECL para .Net e Java.

Para quem usa VB6, xBase e outras linguagens, nós temos atualmente a distribuição ActiveX da ACBrFramework.dll, que nada tem a ver com a dll nativa ACBrFramework32.dll ... nessa versão ActiveX trabalhamos com componentes, propriedades, métodos e eventos, enquanto na dll nativa trabalhamos apenas com funções estáticas.

 

A solução no seu caso é modificar esse exemplo trocando as chamadas da ACBr32.dll para o ActiveX, e fazendo isso as declarações de funções perdem todo o sentido. Por exemplo:

//Onde era função estática

int ecfHandle;
ECF_Create(&ecfHandle);
ECF_Device_SetPorta(ecfHandle, "COM1");
ECF_Ativar(ecfHandle);

//Vira chamada ao objeto

ecf = CreateObject("ACBrFramework_Net.ACBrECF");
ecf.Device.Porta = "COM1";
ecf.Ativar();

OBS: Exemplo fictício, apenas para se ter uma noção!

 

 

Qualquer dúvida, estamos aí.

Abs

Rafael Batiati

ACBrFramework - Automação comercial para todos.

MultiClubes - Soluções para a área de clubes, parques, lazer e entretenimento.

Link to comment
Share on other sites

Prezado 

Rafael Batiati

 

Obrigado pela calma , ponderada e clara explicação....

 

Entendi e compreendo a forma de pensamento, a melhoria em comum pra todos.

 

A forma de Activex seria perfeito pra mim.

No entando eu devo ter salvo a dll errada para instanciar o objeto, pois nao consegui, como citei no meu primeiro post.

Salvei, registrei e nao consegui.

 

ecf = CreateObject("ACBrFramework_Net.ACBrECF")

Seria ideal. Mas retornou erro que a classe nao havia sido encontrada...

 

 

Mas confesso que até gostaria da ideia de portar pra delphi ou c#, a definir qual seria a melhor solucao pra eu começar estudar.... 

Aquela pergunta capciosa... alguma sugestao ? ! rs

Voce sendo o papa do c# acbr.

 

 

Obrigado novamente pela atenção.

Cleiton Fidelis

Divinópolis MG 

[email protected]

Link to comment
Share on other sites

  • Este tópico foi criado há 4018 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.