Что нового

Получение указателя на блок данных без копирования

veretragna

Как писал, так и работает.
Сообщения
140
Репутация
10
Доброго дня.
Собственно, вопрос: можно ли в AutoIt как-то получить указатель на блок данных или строку, не копируя ее в DllStruct?
Например, чтобы получить указатель на строчку, я на данный момент делаю вот так:

Код:
$sBinData = 0xDEADC0DE ; конечно, тут будут другие данные
Local $sLen = BinaryLen($sBinData)
$sBuffer = DllStructCreate('byte[' & $sLen & ']')
DllStructSetData($sBuffer, 1, $sBinData)
$sPtr = DllStructGetPtr($sBuffer, 1)


Хотелось бы просто и аккуратно снять указатель с существующего блока, не прибегая к операции копирования.
 

firex

AutoIT Гуру
Сообщения
943
Репутация
208
veretragna
См. второй аргумент у DllStructCreate.

Если вы имеете ввиду получения указателя на строку созданную AutoIt'ом (переменная), то это не представляется возможным (не документировано).
 
Автор
veretragna

veretragna

Как писал, так и работает.
Сообщения
140
Репутация
10
Да, Вы правы, я это и имел ввиду - получение указателя на блок данных AutoIt'ской переменной.
Впрочем, не буду спешить закрывать тему. Возможно, кто-то еще имеет нужные сведения.
 
Автор
veretragna

veretragna

Как писал, так и работает.
Сообщения
140
Репутация
10
Ну, раз такое дело, нечего тянуть.
firex, спасибо за исчерпывающий ответ!
Тема решена.
 
Верх