Программирование на языке MFC

Мой второй блог в серии программирования

Функция memcpy


Как мы и ожидали, этому методу передаются указатель на бу­фер-приемник данных, указатель на буфер-источник данных и ко­личество байтов, которые должны быть скопированы. При этом копирование происходит при помощи функции memcpy().

Как мне представляется, этот метод является вспомогательным и предназначен прежде всего для обеспечения нормальной рабо­ты методов Read() и WriteQ.

Исходный код метода Read(), предназначенного для чтения ин­формации из файла в памяти, находится в файле filemem.cpp:

UINT CMemFile::Read(void* lpBuf, UINT nCount) {

ASSERT_VALID(this);

if (nCount == 0) return 0;

ASSERT(lpBuf != NULL);

ASSERT(AfxIsValidAddress(lpBuf, nCount));

if (m_nPosition > m_nFileSize) return 0;

UINT nRead;

if (m_nPosition + nCount > m_nFileSize)

nRead = (UINT)(m_nFileSize – m_nPosition);

else

nRead = nCount;

Memcpy((BYTE*)lpBuf,

(BYTE*)m_lpBuffer + m_nPosition,

nRead); m_nPosition += nRead;

ASSERT_VALID(this); return nRead;

}

Похожие статьи: