eIDPT em VB

Mar 1, 2010 at 10:01 AM

Obrigado amigo Fernando.

 

Falta o controlo ‘j2kcontrol.dll’ no demo.

Como não o tinha fui carrega-lo em http://www.codeproject.com/KB/vbscript/J2K_Control.aspx?msg=1596351

 

Mas no momento da leitura do cartão, na parte da foto, dá um erro fatal e sai do VB6. A versão compilada, apenas não lê a foto.

Coordinator
Mar 1, 2010 at 8:12 PM

Caro Jorge,

A primeira distribuição do Programa de Demonstração em VB6 continha alguns erros que já foram resolvidos e colocados online. Os mesmos eram:

- O projecto ainda tinha referência ao controlo J2K-Control com o qual tinha efectuado alguns testes mas que acabei por não utilizar por não dar para redimensionar as imagens. Agora utilizo a biblioteca FreeImage para converter de JP2 para JPEG um formato que os controlos padrão de VB6 conseguem utilizar. Se for desejado poderá ser convertida a foto para outro formato visto que a biblioteca tem bastante potencial.

- Antes de produzir os ZIPs para download aqui no Codeplex resolvi efectuar testes com um outro dll e acabei por criar os ZIPs com as versões erradas do código fonte.

Tal como já tinhamos falado, a biblioteca ainda devolve o erro -1406 para algumas chamadas da PTEID Lib apesar de todos os dados parecerem correctos. Este problema será endereçado de futuro.

Mar 2, 2010 at 9:38 AM

Bom dia, amigo Fernando

 

Se compilar e executar funciona bem, no entanto no IDE a quando chamo a função EIDPT_GetPic ela gera o erro -1406, e não crachá com a chamada da função, só crácha se apresentar o resultado no painel com a linha ‘sb1.SimpleText = "Resultado = "  & result’, se eu apresentar o ‘result’ numa msgbox, não há problema algum, o que é esquisito. E se retirar o controlo do erro, apresenta a foto bem.

 

Eu penso que é o mesmo problema, o erro -1406. Poderá ter a ver com as alocações na memória das funções, visto que na versão compilada não crácha ao apresentar o 'sb1.SimpleText = "Resultado = "  & result’ e se executarmos no editor crácha. Penso que as posições das variáveis na memória são <> das utilizadas no editor.

 

    result = EIDPT_GetPicture(pictureData)

   

    'sb1.SimpleText = "Resultado = "  & result’------ cracha aqui

    MsgBox result

    If (result <> 0) Then

        Exit Sub

    End If

 

O SO que utilizo é o Vista Business 32bits, também testei no 7 e é a mesma coisa, mesmo desligando o controlo de conta de utilizador.

 

Coordinator
Mar 3, 2010 at 4:43 AM

Jorge,

A biblioteca eIDPTVB6 está implementada da maneira mais "crua" possível, apenas contemplando o alinhamento de 4 bytes usado pelo VB para os UDTs.
Vou necessitar de efectuar mais testes de interoperabilidade entre as linguagens para determinar o porquê dos erros -1406 mas tal ainda não me foi possível.