2013-12-06 3 views
0

Я хочу прочитать файл блоками с помощью MASM. Документация Win32 говорит, что мне нужно добавить структуру OVERLAPPED, но я не знаю, как сделать эту структуру в памяти.Чтение файлов в блоках с помощью MASM

Сохраняется ли резервирование соответствующих размеров элементов конструкции?

Каковы размеры союза и структуры?

Можете ли вы предложить мне другой способ сделать это?

Большое спасибо за вашу помощь

ответ

0

перекрытой СТРУКТУР используются функции Windows API, для асинхронных функций, которые немедленно возвращают до его вызова, чтобы и другие функции для доступа к OVERLAPPED структуры. Для директив UNION и STRUCT нет размера, потому что это всего лишь индикатор ассемблеру (или, в большинстве случаев, программисту), что определенный блок данных является либо UNION, либо структурой. Когда вы укажете UNION в MASM, вы можете использовать переменную, связанную с директивой UNION, чтобы представлять различные элементы блока (db, dw, dd и т. Д.) Как один элемент (однако это справедливо только на практике, потому что в сборке вы можете обойти это простым доступом к отдельным элементам блока данных). С другой стороны, STRUCT имеет отдельную ячейку памяти для каждого из ее элементов, и все они могут быть использованы сразу.

Наконец, поскольку OVERLAPPED оператор не существует в MASM, я предлагаю использовать STRUCT, как так:

mystruct struct 
db   byteelement 
dd   doublewordelement 
mystruct ends 

Конечно, вы должны изменить этот код, чтобы соответствовать OVERLAPPED структуру для вашей функции в соответствии с вашими потребностями ,

Вы можете найти более подробную информацию о директивах MASM здесь: http://msdn.microsoft.com/en-us/library/8t163bt0.aspx

Надеется, что это помогает.

Смежные вопросы