Problema dll Delphi com jna

4 respostas
D

Olá amigos, estou tendo problemas com uma dll em java, em Delphi ela funciona beleza, mas, meus conhecimentos em Delphi são muitos limitados, por isso resolvi criar essa Dll e usar com java. Acredito que o problema seja com os tipos Variant e OleVariant, pois testei uma simples MessageBox e funcionou.

Código da Dll.

library MacroParaJava;


uses
  SysUtils,
  ComObj,
  windows,
  Variants,
  Classes;

   var
   Sess0,
   Sistema,
   Sessions: OleVariant;


//______________________________________________________________________________

                          // Conectar ao STC

 procedure conectarSTC;  stdcall;
    begin

  Sistema := CreateOleObject('EXTRA.System');
  Sessions:= Sistema.Sessions;
  Sess0   := Sistema.ActiveSession ;
  MessageBoxA(0,PAnsiChar('Criado Sessão!'),PAnsiChar('Aviso'),0);
    
    end;
//______________________________________________________________________________


       // Mover para uma posição na tela conforme argumentos informados
 procedure Mover(linha, coluna:Integer); stdcall;
    begin

  Sess0.Screen.MoveTo (linha, coluna);

    end;
//______________________________________________________________________________

                      // Tempo entre uma tela

 procedure aguardar; stdcall;
    begin

   while(Sess0.Screen.OIA.XStatus = 5) do
   begin
   end;
    end;

//______________________________________________________________________________

            // Enviar uma tecla conforme argumento informado

procedure enviarTecla(tecla:String); stdcall;
    begin
 Sess0.Screen.SendKeys(tecla);
    end;

//______________________________________________________________________________

                   // Copiar uma área da Tela

 function copiarAreaTela(linhaDe, colunaDe,linhaAte,colunaAte:Integer): String;  stdcall;
  begin

    Result:= Sess0.Screen.Area(linhaDe,colunaDe,linhaAte,colunaAte);
  end;


//______________________________________________________________________________

                   // Desconectar

 procedure desconectarSTC;  stdcall;
  begin
    Sess0    :=Unassigned;
    Sessions :=Unassigned;
    Sistema  :=Unassigned;
  end;



                    // Exportar Funções e Procedimentos
Exports
test,
conectarSTC,
Mover,
aguardar,
enviarTecla,
desconectarSTC,
copiarAreaTela;

begin
end.

Interface JNA com apenas um método para teste.

import com.sun.jna.Library;


public interface InterfaceJna extends Library{   
    
    
    public void conectarSTC();
  
}

Código da classe onde é chamado.

InterfaceJna ij = (InterfaceJna) Native.loadLibrary("MacroParaJava.dll", InterfaceJna.class);
   
    ij.conectarSTC();

Mensagem de erro gerado.

run:
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (0xeedfade), pid=6620, tid=5228
#
# JRE version: 6.0_19-b04
# Java VM: Java HotSpot(TM) Client VM (16.2-b04 mixed mode, sharing windows-x86 )
# Problematic frame:
# C  [kernel32.dll+0x12fd3]
#
# An error report file with more information is saved as:
# C:\Documents and Settings\mmtelecom\Meus documentos\NetBeansProjects\ProducerOsc\hs_err_pid6620.log
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#
Java Result: 1
CONSTRUÍDO COM SUCESSO (tempo total: 15 segundos)

4 Respostas

drsmachado

Chegou a ler

C:\Documents and Settings\mmtelecom\Meus documentos\NetBeansProjects\ProducerOsc\hs_err_pid6620.log
D

Já, mas não entendi nada, rsrs. Se quiser posso postar aqui.

S

Toda e qualquer informação que possa nos ajudar a responde-lo nunca é demais.

D
#
# A fatal error has been detected by the Java Runtime Environment:
#
#  Internal Error (0xeedfade), pid=6620, tid=5228
#
# JRE version: 6.0_19-b04
# Java VM: Java HotSpot(TM) Client VM (16.2-b04 mixed mode, sharing windows-x86 )
# Problematic frame:
# C  [kernel32.dll+0x12fd3]
#
# If you would like to submit a bug report, please visit:
#   http://java.sun.com/webapps/bugreport/crash.jsp
# The crash happened outside the Java Virtual Machine in native code.
# See problematic frame for where to report the bug.
#

---------------  T H R E A D  ---------------

Current thread (0x02e49000):  JavaThread "AWT-EventQueue-0" [_thread_in_native, id=5228, stack(0x03180000,0x031d0000)]

siginfo: ExceptionCode=0xeedfade, ExceptionInformation=0x032931b1 0x032a0a68 0x800401f0 0x031cf2cc 0x031cf370 0x031cf2d0 0x031cf274 

Registers:
EAX=0x031cf1f0, EBX=0x800401f0, ECX=0x00000000, EDX=0x032931b1
ESP=0x031cf1ec, EBP=0x031cf240, ESI=0x031cf274, EDI=0x031cf370
EIP=0x7c812fd3, EFLAGS=0x00000202

Top of Stack: (sp=0x031cf1ec)
0x031cf1ec:   031cf2cc 0eedfade 00000001 00000000
0x031cf1fc:   7c812fd3 00000007 032931b1 032a0a68
0x031cf20c:   800401f0 031cf2cc 031cf370 031cf2d0
0x031cf21c:   031cf274 032930b9 800401f0 03283182
0x031cf22c:   032a0a68 032930eb 031cf2a0 03283149
0x031cf23c:   031cf264 031cf2d0 032931b1 0eedfade
0x031cf24c:   00000001 00000007 031cf258 032931b1
0x031cf25c:   032a0a68 800401f0 031cf2cc 031cf370 

Instructions: (pc=0x7c812fd3)
0x7c812fc3:   8d 7d c4 f3 a5 5f 8d 45 b0 50 ff 15 10 15 80 7c
0x7c812fd3:   5e c9 c2 10 00 85 ff 0f 8e 5e 8e ff ff 8b 55 fc 


Stack: [0x03180000,0x031d0000],  sp=0x031cf1ec,  free space=13c031ced4ck
Native frames: (J=compiled Java code, j=interpreted, Vv=VM code, C=native code)
C  [kernel32.dll+0x12fd3]
C  [MacroParaJava.dll+0x131b1]
C  [jna1906589197772684940.dll+0xcb77]
C  [jna1906589197772684940.dll+0xc7c2]
C  [jna1906589197772684940.dll+0x4561]
C  [jna1906589197772684940.dll+0x4cae]
j  com.sun.jna.Function.invokeVoid(I[Ljava/lang/Object;)V+0
j  com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;Z)Ljava/lang/Object;+45
j  com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+214
j  com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+341
j  $Proxy0.conectarSTC()V+9
j  FrameInicial.jButton1ActionPerformed(Ljava/awt/event/ActionEvent;)V+13
j  FrameInicial.access$000(LFrameInicial;Ljava/awt/event/ActionEvent;)V+2
j  FrameInicial$1.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
j  javax.swing.AbstractButton.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+84
j  javax.swing.AbstractButton$Handler.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
j  javax.swing.DefaultButtonModel.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+35
j  javax.swing.DefaultButtonModel.setPressed(Z)V+117
j  javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Ljava/awt/event/MouseEvent;)V+35
j  java.awt.Component.processMouseEvent(Ljava/awt/event/MouseEvent;)V+64
j  javax.swing.JComponent.processMouseEvent(Ljava/awt/event/MouseEvent;)V+23
j  java.awt.Component.processEvent(Ljava/awt/AWTEvent;)V+81
j  java.awt.Container.processEvent(Ljava/awt/AWTEvent;)V+18
j  java.awt.Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V+566
j  java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+42
j  java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j  java.awt.LightweightDispatcher.retargetMouseEvent(Ljava/awt/Component;ILjava/awt/event/MouseEvent;)V+320
j  java.awt.LightweightDispatcher.processMouseEvent(Ljava/awt/event/MouseEvent;)Z+139
j  java.awt.LightweightDispatcher.dispatchEvent(Ljava/awt/AWTEvent;)Z+50
j  java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+12
j  java.awt.Window.dispatchEventImpl(Ljava/awt/AWTEvent;)V+19
j  java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j  java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+46
j  java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z+204
j  java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30
j  java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
j  java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
j  java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
j  java.awt.EventDispatchThread.run()V+9
v  ~StubRoutines::call_stub
V  [jvm.dll+0xf049c]
V  [jvm.dll+0x17fcf1]
V  [jvm.dll+0xf0667]
V  [jvm.dll+0xf06dd]
V  [jvm.dll+0x11a2a0]
V  [jvm.dll+0x1ddb14]
V  [jvm.dll+0x17f96c]
C  [msvcr71.dll+0x9565]
C  [kernel32.dll+0xb729]

Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
j  com.sun.jna.Function.invokeVoid(I[Ljava/lang/Object;)V+0
j  com.sun.jna.Function.invoke([Ljava/lang/Object;Ljava/lang/Class;Z)Ljava/lang/Object;+45
j  com.sun.jna.Function.invoke(Ljava/lang/Class;[Ljava/lang/Object;Ljava/util/Map;)Ljava/lang/Object;+214
j  com.sun.jna.Library$Handler.invoke(Ljava/lang/Object;Ljava/lang/reflect/Method;[Ljava/lang/Object;)Ljava/lang/Object;+341
j  $Proxy0.conectarSTC()V+9
j  FrameInicial.jButton1ActionPerformed(Ljava/awt/event/ActionEvent;)V+13
j  FrameInicial.access$000(LFrameInicial;Ljava/awt/event/ActionEvent;)V+2
j  FrameInicial$1.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
j  javax.swing.AbstractButton.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+84
j  javax.swing.AbstractButton$Handler.actionPerformed(Ljava/awt/event/ActionEvent;)V+5
j  javax.swing.DefaultButtonModel.fireActionPerformed(Ljava/awt/event/ActionEvent;)V+35
j  javax.swing.DefaultButtonModel.setPressed(Z)V+117
j  javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Ljava/awt/event/MouseEvent;)V+35
j  java.awt.Component.processMouseEvent(Ljava/awt/event/MouseEvent;)V+64
j  javax.swing.JComponent.processMouseEvent(Ljava/awt/event/MouseEvent;)V+23
j  java.awt.Component.processEvent(Ljava/awt/AWTEvent;)V+81
j  java.awt.Container.processEvent(Ljava/awt/AWTEvent;)V+18
j  java.awt.Component.dispatchEventImpl(Ljava/awt/AWTEvent;)V+566
j  java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+42
j  java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j  java.awt.LightweightDispatcher.retargetMouseEvent(Ljava/awt/Component;ILjava/awt/event/MouseEvent;)V+320
j  java.awt.LightweightDispatcher.processMouseEvent(Ljava/awt/event/MouseEvent;)Z+139
j  java.awt.LightweightDispatcher.dispatchEvent(Ljava/awt/AWTEvent;)Z+50
j  java.awt.Container.dispatchEventImpl(Ljava/awt/AWTEvent;)V+12
j  java.awt.Window.dispatchEventImpl(Ljava/awt/AWTEvent;)V+19
j  java.awt.Component.dispatchEvent(Ljava/awt/AWTEvent;)V+2
j  java.awt.EventQueue.dispatchEvent(Ljava/awt/AWTEvent;)V+46
j  java.awt.EventDispatchThread.pumpOneEventForFilters(I)Z+204
j  java.awt.EventDispatchThread.pumpEventsForFilter(ILjava/awt/Conditional;Ljava/awt/EventFilter;)V+30
j  java.awt.EventDispatchThread.pumpEventsForHierarchy(ILjava/awt/Conditional;Ljava/awt/Component;)V+11
j  java.awt.EventDispatchThread.pumpEvents(ILjava/awt/Conditional;)V+4
j  java.awt.EventDispatchThread.pumpEvents(Ljava/awt/Conditional;)V+3
j  java.awt.EventDispatchThread.run()V+9
v  ~StubRoutines::call_stub

---------------  P R O C E S S  ---------------

Java Threads: ( => current thread )
  0x002b6800 JavaThread "DestroyJavaVM" [_thread_blocked, id=4184, stack(0x008c0000,0x00910000)]
=>0x02e49000 JavaThread "AWT-EventQueue-0" [_thread_in_native, id=5228, stack(0x03180000,0x031d0000)]
  0x02e48800 JavaThread "AWT-Shutdown" [_thread_blocked, id=7768, stack(0x030e0000,0x03130000)]
  0x02e44800 JavaThread "AWT-Windows" daemon [_thread_in_native, id=6496, stack(0x03130000,0x03180000)]
  0x02e42400 JavaThread "Java2D Disposer" daemon [_thread_blocked, id=6540, stack(0x03090000,0x030e0000)]
  0x02ae7c00 JavaThread "Low Memory Detector" daemon [_thread_blocked, id=7036, stack(0x02d60000,0x02db0000)]
  0x02ae1c00 JavaThread "CompilerThread0" daemon [_thread_blocked, id=7076, stack(0x02d10000,0x02d60000)]
  0x02ae0400 JavaThread "Attach Listener" daemon [_thread_blocked, id=2836, stack(0x02cc0000,0x02d10000)]
  0x02adf000 JavaThread "Signal Dispatcher" daemon [_thread_blocked, id=6180, stack(0x02c70000,0x02cc0000)]
  0x02aa0000 JavaThread "Finalizer" daemon [_thread_blocked, id=7152, stack(0x02c20000,0x02c70000)]
  0x02a9b400 JavaThread "Reference Handler" daemon [_thread_blocked, id=6424, stack(0x02bd0000,0x02c20000)]

Other Threads:
  0x02a99c00 VMThread [stack: 0x02b80000,0x02bd0000] [id=7896]
  0x02af2800 WatcherThread [stack: 0x02db0000,0x02e00000] [id=6388]

VM state:not at safepoint (normal execution)

VM Mutex/Monitor currently owned by a thread: None

Heap
 def new generation   total 3712K, used 798K [0x22990000, 0x22d90000, 0x24ee0000)
  eden space 3328K,  12% used [0x22990000, 0x229f7a90, 0x22cd0000)
  from space 384K, 100% used [0x22d30000, 0x22d90000, 0x22d90000)
  to   space 384K,   0% used [0x22cd0000, 0x22cd0000, 0x22d30000)
 tenured generation   total 4096K, used 1050K [0x24ee0000, 0x252e0000, 0x29990000)
   the space 4096K,  25% used [0x24ee0000, 0x24fe68d8, 0x24fe6a00, 0x252e0000)
 compacting perm gen  total 12288K, used 666K [0x29990000, 0x2a590000, 0x2d990000)
   the space 12288K,   5% used [0x29990000, 0x29a36988, 0x29a36a00, 0x2a590000)
    ro space 10240K,  54% used [0x2d990000, 0x2df0b760, 0x2df0b800, 0x2e390000)
    rw space 12288K,  55% used [0x2e390000, 0x2ea2f798, 0x2ea2f800, 0x2ef90000)

Dynamic libraries:
0x00400000 - 0x00424000 	C:\Program Files\Java\jdk1.6.0_19\bin\java.exe
0x7c900000 - 0x7c9b6000 	C:\WINDOWS\system32\ntdll.dll
0x7c800000 - 0x7c900000 	C:\WINDOWS\system32\kernel32.dll
0x77f50000 - 0x77ffb000 	C:\WINDOWS\system32\ADVAPI32.dll
0x77db0000 - 0x77e43000 	C:\WINDOWS\system32\RPCRT4.dll
0x77f20000 - 0x77f31000 	C:\WINDOWS\system32\Secur32.dll
0x7c340000 - 0x7c396000 	C:\Program Files\Java\jdk1.6.0_19\jre\bin\msvcr71.dll
0x6d8b0000 - 0x6db47000 	C:\Program Files\Java\jdk1.6.0_19\jre\bin\client\jvm.dll
0x7e360000 - 0x7e3f1000 	C:\WINDOWS\system32\USER32.dll
0x77e50000 - 0x77e99000 	C:\WINDOWS\system32\GDI32.dll
0x76b20000 - 0x76b4e000 	C:\WINDOWS\system32\WINMM.dll
0x5d1d0000 - 0x5d1d7000 	C:\WINDOWS\system32\serwvdrv.dll
0x5b4f0000 - 0x5b4f7000 	C:\WINDOWS\system32\umdmxfrm.dll
0x6d860000 - 0x6d86c000 	C:\Program Files\Java\jdk1.6.0_19\jre\bin\verify.dll
0x6d3e0000 - 0x6d3ff000 	C:\Program Files\Java\jdk1.6.0_19\jre\bin\java.dll
0x6d340000 - 0x6d348000 	C:\Program Files\Java\jdk1.6.0_19\jre\bin\hpi.dll
0x76bd0000 - 0x76bdb000 	C:\WINDOWS\system32\PSAPI.DLL
0x6d8a0000 - 0x6d8af000 	C:\Program Files\Java\jdk1.6.0_19\jre\bin\zip.dll
0x6d0b0000 - 0x6d1fa000 	C:\Program Files\Java\jdk1.6.0_19\jre\bin\awt.dll
0x72fb0000 - 0x72fd6000 	C:\WINDOWS\system32\WINSPOOL.DRV
0x77bf0000 - 0x77c48000 	C:\WINDOWS\system32\msvcrt.dll
0x76360000 - 0x7637d000 	C:\WINDOWS\system32\IMM32.dll
0x774c0000 - 0x775fe000 	C:\WINDOWS\system32\ole32.dll
0x773b0000 - 0x774b3000 	C:\WINDOWS\WinSxS\x86_Microsoft.Windows.Common-Controls_6595b64144ccf1df_6.0.2600.6028_x-ww_61e65202\COMCTL32.dll
0x77ea0000 - 0x77f16000 	C:\WINDOWS\system32\SHLWAPI.dll
0x5b1c0000 - 0x5b1f8000 	C:\WINDOWS\system32\uxtheme.dll
0x7c9c0000 - 0x7d1de000 	C:\WINDOWS\system32\shell32.dll
0x6d2e0000 - 0x6d334000 	C:\Program Files\Java\jdk1.6.0_19\jre\bin\fontmanager.dll
0x6d6c0000 - 0x6d6d3000 	C:\Program Files\Java\jdk1.6.0_19\jre\bin\net.dll
0x71a70000 - 0x71a87000 	C:\WINDOWS\system32\WS2_32.dll
0x71a60000 - 0x71a68000 	C:\WINDOWS\system32\WS2HELP.dll
0x6d6e0000 - 0x6d6e9000 	C:\Program Files\Java\jdk1.6.0_19\jre\bin\nio.dll
0x68000000 - 0x68036000 	C:\WINDOWS\system32\rsaenh.dll
0x769a0000 - 0x76a55000 	C:\WINDOWS\system32\USERENV.dll
0x5bcb0000 - 0x5bd05000 	C:\WINDOWS\system32\netapi32.dll
0x75190000 - 0x751ae000 	C:\WINDOWS\system32\wshbth.dll
0x77900000 - 0x779f5000 	C:\WINDOWS\system32\SETUPAPI.dll
0x71a10000 - 0x71a50000 	C:\WINDOWS\System32\mswsock.dll
0x76f00000 - 0x76f27000 	C:\WINDOWS\system32\DNSAPI.dll
0x76d40000 - 0x76d59000 	C:\WINDOWS\system32\iphlpapi.dll
0x76f90000 - 0x76f98000 	C:\WINDOWS\System32\winrnr.dll
0x76f40000 - 0x76f6d000 	C:\WINDOWS\system32\WLDAP32.dll
0x76fa0000 - 0x76fa6000 	C:\WINDOWS\system32\rasadhlp.dll
0x10000000 - 0x10055000 	C:\Documents and Settings\mmtelecom\Configurações locais\Temp\jna1906589197772684940.dll
0x03280000 - 0x032a0000 	C:\Documents and Settings\mmtelecom\Meus documentos\NetBeansProjects\ProducerOsc\MacroParaJava.dll
0x77100000 - 0x7718b000 	C:\WINDOWS\system32\oleaut32.dll
0x76fb0000 - 0x7702f000 	C:\WINDOWS\system32\CLBCATQ.DLL
0x77030000 - 0x770fd000 	C:\WINDOWS\system32\COMRes.dll
0x77be0000 - 0x77be8000 	C:\WINDOWS\system32\VERSION.dll

VM Arguments:
jvm_args: -Dfile.encoding=UTF-8 
java_command: FrameInicial
Launcher Type: SUN_STANDARD

Environment Variables:
PATH=C:\Perl\site\bin;C:\Perl\bin;C:\Arquivos de programas\Borland\Delphi7\Bin;C:\Arquivos de programas\Borland\Delphi7\Projects\Bpl\;C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\WBEM;C:\Arquivos de programas\PC Connectivity Solution\;C:\Program Files\Java\jdk1.6.0_19\bin;
USERNAME=mmtelecom
OS=Windows_NT
PROCESSOR_IDENTIFIER=x86 Family 6 Model 15 Stepping 2, GenuineIntel



---------------  S Y S T E M  ---------------

OS: Windows XP Build 2600 Service Pack 3

CPU:total 2 (2 cores per cpu, 1 threads per core) family 6 model 15 stepping 2, cmov, cx8, fxsr, mmx, sse, sse2, sse3, ssse3

Memory: 4k page, physical 458220k(20256k free), swap 1439500k(811176k free)

vm_info: Java HotSpot(TM) Client VM (16.2-b04) for windows-x86 JRE (1.6.0_19-b04), built on Mar  9 2010 00:48:41 by "java_re" with MS VC++ 7.1 (VS2003)

time: Fri Jul 05 09:06:21 2013
elapsed time: 13 seconds
Criado 5 de julho de 2013
Ultima resposta 5 de jul. de 2013
Respostas 4
Participantes 3