我正在寻找一个Java字符串'WLANHostedNetworkSetSecondaryKey' and 'WLAN 托管网络设置属性'。一个想要一个带有 CHAR[] 的结构内的结构,第一个想要一个 PUCHAR。我尝试使用字符串、char[]、byte[] 和内存,但他们会继续给我带来同样的错误(首先是错误的参数或错误的配置文件)。有什么办法可以用 JNA 进行更多调试(可能不是:()?
我也无法在任何地方读取所使用的字符编码,除非它不是 ANSI。任何帮助都会很棒!
* DWORD WINAPI WlanHostedNetworkSetSecondaryKey(
__in HANDLE hClientHandle,
__in DWORD dwKeyLength,
__in PUCHAR pucKeyData,
__in BOOL bIsPassPhrase,
__in BOOL bPersistent,
__out_opt PWLAN_HOSTED_NETWORK_REASON pFailReason,
__reserved PVOID pvReserved
* DWORD WINAPI WlanHostedNetworkSetProperty(
__in HANDLE hClientHandle,
__in WLAN_HOSTED_NETWORK_OPCODE OpCode,
__in DWORD dwDataSize,
__in PVOID pvData,
__out_opt PWLAN_HOSTED_NETWORK_REASON pFailReason,
__reserved PVOID pvReserved
);
有关这方面的大多数文档
http://msdn.microsoft.com/en-us/library/dd439496(v=VS.85).aspx http://msdn.microsoft.com/en-us/library/dd439496(v=VS.85).aspx
http://jna.java.net/javadoc/overview-summary.html#pointers http://jna.java.net/javadoc/overview-summary.html#pointers
http://en.wikipedia.org/wiki/Java_Native_Access http://en.wikipedia.org/wiki/Java_Native_Access
以下评论:
String buffer = "test";
ByteBuffer buf = ByteBuffer.allocateDirect(buffer.length()); buf.put(buffer.getBytes());
Pointer pucKeyData = Native.getDirectBufferPointer(buf);
System.out.println(
CLibrary.INSTANCE.WlanHostedNetworkSetSecondaryKey(handle.getValue(), 5, pucKeyData, 0, 0, reason, reserved));