|
|
ru.perl- RU.PERL ---------------------------------------------------------------------- From : Maxim Yemelyanov 2:5020/400 02 Mar 2005 14:14:12 To : All Subject : pack/unpack указателей --------------------------------------------------------------------------------
Приветствую!
Есть сторонняя dll. Hужно модифицировать поля расположенной в ней
структуры.
Если известен адрес, размер и формат структуры, то правильно ли я
рассуждаю:
# по адресу получили упакованную структуру
$packed_struct = unpack("P$struct_size", $struct_addr);
# распаковали
@fields = unpack( $struct_format, $packed_struct);
... работаю с полями ...
# снова пакуем
$packed_struct = pack($struct_format, @fields);
# а как теперь записать измененные данные обратно?
pack("P$struct_size", $packed_struct); # так?
Почему в документации приводится предупреждение при работе с "P" лишь
для unpack, но не для pack? Значит все-таки unpack может писать в
произвольную область памяти?
Что-то тут с форматом "P" мне не до конца понятно...
--
Удачи!
Максим
Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru
--- ifmail v.2.15dev5.3
* Origin: Enigma Soft (2:5020/400)
Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор
Архивное /ru.perl/1312671a5d51c.html, оценка из 5, голосов 10
|