Jawin - Erro

Pessoal, estou com um problema aqui que está me fervendo a cabeça…

Eu nunca utilizei a biblioteca jawin… E estou tentando acessar uma dll VB que serve para acessar um relógio de ponto eletrônico. Essa dll foi diponibilizada pela empresa que produziu o relógio.

Só que quando eu executo o método, ocorre o seguinte erro:

     [color=red]com.develop.jawin.COMException: 800401f3: Seqüência de classe inválida[/color][b]

O erro ocorre neste trecho::
// Nome da dll ponto nome da classe
app = new DispatchPtr("Teste.clsTeste" );

Segue abaixo o método de teste.
Obs: neste mesmo método eu coloquei uma chamada ao Power Point utilizando jawin e funcionou perfeitamente.


	public void process() { 
		long start = System.currentTimeMillis(); 
		DispatchPtr app; 
		DispatchPtr app2;

		try {
			app2 = new DispatchPtr("PowerPoint.Application");
			app2.put("Visible", true);
		} catch (COMException e1) {
			// TODO Auto-generated catch block
			e1.printStackTrace();
		}
		
		try {

			
			// Nome da dll ponto nome da classe 
			app = new DispatchPtr("Teste.clsTeste"); 
			
			String teste = (String) app.invoke("Teste","bruna"); 
			System.out.println(teste);

		} catch (Exception e) { 
			System.out.println(e.getMessage());
			e.printStackTrace(); 
		} 
		long end = System.currentTimeMillis();

		System.out.println("->Tempo de processamento: " + (end - start)); 
	} 

Alguém tem idéia do que seja???

Essa DLL VB foi registrada corretamente? Se você tentar chamar essa DLL VB a partir de um programa VBScript, ela funciona?

A sim!! Está registrada!!! Isso é fato!

Obrigada!

E testei agora aqui com uma aplicação VB e funcionou corretamente.

Mas alguém já passou por isso e poderia me ajudar?

Obrigada!

:frowning:

Já ouvi falar que na verdade não dá para usar o nome Teste.clsTeste mas algum outro que é parecido, mas como não estou aqui com um VB6 para testar, não tenho como comprovar isso.

Você diz por causa do nome da classe???

Ninguém aqui teve problemas utilizando Jawin?!?!?!?!!??!?!

[color=red] com.develop.jawin.COMException: 800401f3: Seqüência de classe inválida[/color]

:cry:

O erro 0x800401f3 quer dizer que o sistema não conseguiu achar uma classe registrada exatamente com esse nome.

Eu pedi para um programador VB aqui da equipe fazer uma dll só para eu testar, simples, quando eu chamo o método, deveria me retornar a String que passei por parâmetro só que uppercase.
Eu a registrei aqui na minha máquina e ele fez um programinha que chama essa dll, passa um nome e dá uma mensagem com o retorno do método da dll. E o programa dele funcionou normal aqui na minha máquina, ou seja, a dll está registrada.

É isso que ta me deixando de cabelos em pé!
Não é possíveeeellll!!! rs…

Eu preciso fazer isso funcionar!! :frowning:

Valeu pela atenção!

Deve haver na máquina em que está instalado o Visual Studio 6 um programa chamado “oleview” (OLE/COM Object Viewer).

Como eu disse antes, não tenho aqui um Visual Studio 6 para fazer um teste do tipo “Se sua classe se chama Teste.clsTeste, é necessário alterar o nome para _Teste.clsTeste ou Teste.Teste ou Teste._clsTeste para fazer o seu programa funcionar.”

Mas como o oleview permite verificar que DLLs estão registradas na sua máquina, em que lugar e com que nome, então veja se você consegue encontrar o nome alternativo para essa classe.

OK?

É pessoal… Não deu certo usar o Jawin…

Tentei JNA. Carrega a dll, porém retorna a mensagem que não encontra o método.
Daí me falaram que para acessar dll VB tenho que usar Jacob. Estou tentando pq documentaçao é escassa, e os exemplos que encontrei são todos para abrir ferramentas do office ou Outlook…

Valeu pela atenção!
Bjo :roll: :roll: :roll:

Bruna, tudo bem?

Faz tempo que eu mexi com Jawin, mas eu lembro que tem um programa dele, que você aponta para a DLL e ele gera as classes pra você! Muito simples.

Eu tenho isso guardado no meu e-mail, mas aqui não tenho acesso.

Quando chegar eu posto aqui.

[quote=javablue]Bruna, tudo bem?

Faz tempo que eu mexi com Jawin, mas eu lembro que tem um programa dele, que você aponta para a DLL e ele gera as classes pra você! Muito simples.

Eu tenho isso guardado no meu e-mail, mas aqui não tenho acesso.

Quando chegar eu posto aqui. [/quote]

Aaai que bom que vc tem ainda!!!

Vou aguardar!!!

Valeu #javablue

http://jawinproject.sourceforge.net/jawintypebrowser.html

Bruna, é essa documentação que o entanglement passou. Na época eu usei e funcionou que é uma beleza!

Espero que dê certo para você também

Boa sorte!

[quote=javablue]Bruna, é essa documentação que o entanglement passou. Na época eu usei e funcionou que é uma beleza!

Espero que dê certo para você também

Boa sorte![/quote]

Que boom!!!

Estou acabando de colocar em prática o que li nesta documentação sobre Jacob

http://www.dreamincode.net/forums/topic/114094-using-dll-library-in-java-application-using-jacob/

Em seguida vou ler essa documentação. Até porque TEM que funcionar não é?!

Depois posto tudo aqui pessoal!!

Muuuito obrigada pela atenção!

Bjos :wink: