指向BOOL的jnajava指针
我正在尝试将此函数转换为JNA:指向BOOL的jnajava指针,java,integer,boolean,jna,Java,Integer,Boolean,Jna,我正在尝试将此函数转换为JNA: DWORD WINAPI WlanHostedNetworkSetProperty( __in HANDLE hClientHandle, __in WLAN_HOSTED_NETWORK_OPCODE OpCode, __in DWORD dwDataSize, __in PVOID pvData, __out
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
);
正如我现在所说:
int WlanHostedNetworpSetProperty(HANDLE hClientHandle, IntByReference OpCode,int dwDataSize, Pointer pvData, IntByReference pFailReason, Pointer pvReserved);
这应该是正确的
但是,当操作码是wlan托管的网络操作码启用时,也就是3,它希望pvData是BOOL。我读到BOOL是一个整数,但是执行pvData.setInteger(1)会使应用程序崩溃。任何帮助都会很好
当操作码
为无线局域网承载的网络操作码
启用时,崩溃是一种异常访问冲突。:
指向BOOL的指针在pvData参数中传递
请注意,它是指向BOOL
的指针,而不是实际需要的BOOL
值
正如您所发现的,更改为
IntByReference
解决了问题,这可能是因为int
和BOOL
在您的平台上大小相同,而且现在您正在传递一个有效指针。但是它现在返回的是“错误参数”,而不是不支持的错误或类似错误。这是因为dwDataSize设置错误(设置为4)?Nvm,操作码不应该是指针,这就是它所抱怨的。