У меня есть указатель на память типа:
Pointer pData = new Memory(65536);
, и мне нужно получить указатель этой памяти, начиная с позиции 8, потому что я хочу отправить эту часть памяти (от 8 до 65535) к собственному API C.
Я использовал:
pData8 = pData.getPointer(8);
, чтобы получить указатель, начиная с позиции 8, затем я попытался записать что-то в pData8, используя:
pData8.setInt(0xAAAA);
просто чтобы убедиться, что я пишу в правильном положении, но я получаю сообщение об ошибке: Неверный доступ к памяти.
Как я могу получить действительный указатель на часть памяти и иметь возможность записи в нее?
ниже деталей:
80 Pointer pM = new Memory(65536);
81 Pointer p = pM.getPointer(4);
82 pM.setInt(0, 0xFFFF);
83 p.setInt(0, 0xBBBB);
Exception in thread "main" java.lang.Error: Invalid memory access
at com.sun.jna.Native.setInt(Native Method)
at com.sun.jna.Pointer.setInt(Pointer.java:1124)
at it.caen.dig.Demo.main(Demo.java:83)