2009-11-08 2 views
4

델파이로 나는 JNA (Java Native Access)을 통해 자바에서 호출 할 수있는 DLL을 작성했습니다. 이 DLL의 메소드는 단순한 조작이지만 나중에 DLL을 Java (Java IDE)에서 호출하는 경우 나중에 사용하고 더 복잡한 호출을 위해 Delphi 디버거를 사용할 수있는 방법을 알고 싶습니다.Delphi에서 Java라는 DLL을 디버깅하는 방법은 무엇입니까?

+0

DLL을 디버깅하려면 메시지가 나타내는대로 호스트 응용 프로그램을 지정해야합니다. 당신은 메뉴를 통해 할 수 있습니다 : "시작"- "매개 변수". –

답변

4

이 질문에 대한 대답은 스택 오버플로 질문 How to debug a DLL file in Delphi과 같을 것이라고 생각합니다.

사실 델파이 환경에서 델파이의 DLL 파일을 디버깅하기 때문에 호출 스택 중 누가 더 높은지는 중요하지 않습니다.

0
내가 호스트 응용 프로그램 (자바)를 정의 경우 작동

설정하고 올바른 인수 :

  • 호스트 응용 프로그램 : C : \ 프로그램 \ 자바 \ jdk1.6.0_14 \ JRE \ 빈 \의 java.exe를
  • 매개 변수 : -cp junit.textui.TestRunner AppTest

"/path/to/test.jar는"JUnit을 텍스트의 TestRunner 명령 줄 인수는 여기에 설명되어 있습니다 http://junit.sourceforge.net/junit3.8.1/javadoc/junit/textui/TestRunner.html

-2

Delphi에서 먼저 DLL을 디버깅하지 않는 이유는 무엇입니까? DUnit이라는 Delphi 용 단위 테스트 프레임 워크가 있습니다. 전체 시스템에 대한 통합 테스트를 작성하고 싶지만 JUnit 유닛 테스트에서 외부 종속성을 조롱 할 수 있습니다.

+1

오래된 속담은 '푸딩의 증거가 먹는 것'이라고 말합니다. 자바에서 DLL을 호출하면 잘못된 데이터 유형, 포인터 등으로 오류를 분석하는 것이 가능합니다. 물론 DUnit 테스트는 추가적인 안전망으로 사용될 수 있습니다. JUnit 테스트는 DLL과 자바 측에서 관련된 연산의 통합을 다루며, 만약이 통합 테스트가 실패하면 데이터 흐름을 분석 할 필요가있다. – mjn

+0

@mjustin : 통합 테스트가 필요하다는 데 전적으로 동의합니다. 제가 제안하고있는 것은 클래스를 별도로 테스트하는 것입니다 (단위 테스트). 너는 너의 케이크를 먹을 수 있고 그것을 역시 먹을 수있다! :) – TrueWill

+2

외부 종속성 (DLL)을 조롱하는 경우 더 이상 통합 테스트가 더 이상 필요하지 않습니다. 기본적으로 Java에 의해 호출 된 DLL * 디버깅을 제안하여 Java에서 호출하는 DLL을 디버깅하는 방법에 대한 질문에 대답했습니다. –

관련 문제