12 messages in net.java.dev.jna.usersRe: GetlastError always returns 0
FromSent OnAttachments
Timothy WallAug 7, 2007 7:52 am 
Thomas BörkelAug 8, 2007 5:15 am 
Timothy WallAug 8, 2007 6:35 am 
Thomas BörkelAug 8, 2007 6:45 am 
Kim ValentineAug 8, 2007 7:02 am 
Timothy WallAug 8, 2007 7:26 am 
Timothy WallAug 8, 2007 7:34 am 
Timothy WallAug 8, 2007 7:42 am 
Thomas BörkelAug 8, 2007 8:00 am 
Thomas BörkelAug 8, 2007 8:05 am 
Thomas BörkelAug 8, 2007 8:21 am 
Timothy WallAug 8, 2007 8:50 am 
Actions with this message:
Paste this link in email or IM:
Paste this link in email or IM:
Atom feed for this thread
Paste this URL into your reader:
Subject:Re: GetlastError always returns 0Actions...
From:Thomas Börkel (tho@boerkel.de)
Date:Aug 8, 2007 5:15:46 am
List:net.java.dev.jna.users

HI!

I am too struggling with GetLastError().

I am not using the Kernel32 class from the examples, but my own. I tried to define the return type as NativeLong and as int with no difference. I always get 0 from GetLastError(), where I get for example "5" in C.

Relevant bits:

Java: Pointer handle; handle = getServiceHandle("localhost", WINNT.GENERIC_EXECUTE);

public static Pointer getServiceHandle(String machine, long access) throws Exception { Pointer handle; Advapi32 advapi32; WString machineW; NativeLong accessNL; int lastError;

advapi32 = Advapi32.INSTANCE;

machineW = new WString(machine); accessNL = new NativeLong(access); Kernel32.INSTANCE.GetLastError(); handle = advapi32.OpenSCManagerW(machineW, null, accessNL); lastError = Kernel32.INSTANCE.GetLastError();

if(handle == null) { throw new Exception("Win32 error: " + lastError); } return(handle); }

C: printf("%ld\n", OpenSCManagerW(L"localhost", NULL, GENERIC_EXECUTE)); printf("%ld\n", GetLastError());

Thanks!

Thomas