2012-12-31 2 views
1

가능한 중복 :
What’s the equivalent to IntPtr (C#) in Java?Java에 상응하는 IntPtr.ZERO?

는 C#의 IntPtr.ZERO의 자바 상당이 있습니까? 없는 경우, JNA 라이브러리 인터페이스 호출에 전달 될 때 동일한 동작을 수행 할 수있는 방법이 있습니까? 이 의 Kernal32 JNA 인터페이스?

boolean CreateProcess(String lpApplicationName, String commandLine, 
     int processAttributes, int threadAttributes, 
     boolean inheritHandles, int creationFlags, 
     IntByReference environment, String currentDirectory, 
     STARTUPINFO startupInfo, PROCESS_INFORMATION processInformation); 

에 전달 될 때

private static final IntByReference ZERO = new IntByReference(0);

내가 같은 동작을 달성 :

나는 IntPtr.ZERO를 대표하는이 조각을 사용하고 있습니다 그대로 : CreateProcess(target, null, 0, 0, false, 4, ZERO, null, sInfo, pInfo)

+1

죄송합니다. IntPtr은 아니며 IntPtr.Zero가 아닌 것 같습니다. –

+0

나는 _IntPtr_와 동등한 것을 찾고 있지 않다. _IntPtr.ZERO_와 동등한 것이 필요하다. – Jire

+0

JNA에서는 'null'이 일반적으로 동등하게 사용됩니다. – msandiford

답변

0

저는 C# 프로그래머가 아니지만 IntPtr.ZERO를 올바르게 이해하면 자바가 없습니다. Java 참조는 널이거나 할당 될 수 있으며 이와 같은 세 번째 경우는 없습니다. 당신은 당신이 당신이 필요하다고 생각하는 경우, 달성하려고하는 것을 우리에게 보여 경우

, 우리는 올바른 방향으로 (의도 웃기)에서 당신을 가리 킵니다 아마 수 있습니다.


편집 : 응답 @Jire에서 언급합니다 :

아주 잘가 직접 원하는 것을 할 수있는 방법이 될 수 있지만, 직접적으로지도 NTDLL과의 Kernal32 인터페이스를 시도하고, 힘든 길처럼 보인다 수 있습니다 JNA를 통한 Java. 당신이 발견 한 것처럼, 그들은 완전히 다른 두 개의 세계이고, 직접 번역하지 않는 많은 것들이 있습니다.

내가 JNA와 함께 잘 작동 간단한 유형을 사용하여 자바 응용 프로그램에서 명령 스타일의 요청을 수락하고, 다시 해당 네이티브 윈도우 전화를 호출 자신의 DLL을 작성하는 게 좋을 것.

는 JNA가 네이티브 코드와 자바 사이에 매핑 할 수있는 데이터 유형의 목록 JNA - Mapping Types를 참조하십시오.

당신이 중재하는 DLL이 작업을 수행해야한다고 결정하는 경우에, 나는 당신이 행운을 빌어, 당신은 성공이있는 경우 다른 사람이 볼 수 있도록 코드를 게시하시기 바랍니다.

+0

나는 윈도우 이것은 내가 변환 할 것입니다 (지금까지 실제 프로그램이 하드 드라이브에 충돌하지 않고) 바이트 배열에서 프로그램을 실행하는 기본 호출 않는 자바 소프트웨어를 작성하는 것을 시도하고있다/7Maq937s 여기 내 Kernel32 인터페이스입니다 (이것도 구조체를 정의합니다) : http://pastebin.com/8acqJY8R 여기에 내 NtDll 인터페이스가 있습니다 : http://pastebin.com/Q2CgHD37 내가 가지고있는 문제는 C# 클래스의 함수를 변환하는 것으로 여기에서 가장 많이 작성했습니다. http : // pastebin입니다.com/8fUybMc1 내가 이해할 수없는 것은 의견에 적혀 있습니다. 내 문제가 대부분 반복됩니다. – Jire