pFrameData must be Pointer or PointerType.
On Mar 31, 2009, at 11:39 PM, bao bao wrote:
I have the following C Struct:
typedef struct tagFRAME_BUFFER
{
DWORD nBufSize;
PBYTE pFrameData;
}FRAME_BUFFER;
And i have mapped this structured as follows:
public interface VS extends StdCallLibrary {
public static class FRAME_BUFFER extends Structure implements
Structure.ByReference {
public FRAME_HEADER FrameHeader;
public int nBufSize;
public byte[] pFrameData;
public FRAME_BUFFER() {
}
}
}
but i have got the following errors:
java.lang.IllegalStateException: Array fields must be initialized
at com.sun.jna.Structure.calculateSize(Structure.java:751)
at com.sun.jna.Structure.allocateMemory(Structure.java:199)
at com.sun.jna.Structure.getPointer(Structure.java:249)
at com.sun.jna.CallbackReference
$DefaultCallbackProxy.convertArgument(CallbackReference.java:318)
at com.sun.jna.CallbackReference
$DefaultCallbackProxy.callback_inner(CallbackReference.java:265)
at com.sun.jna.CallbackReference
$DefaultCallbackProxy.callback(CallbackReference.java:294)
because pFrameData's size is not fixed, so i couln't initialize it.
Any good idea?
Regards,
lefish