MapViewOfFile

此頁沒有內(nèi)容條目
內(nèi)容

MapViewOfFile, MapViewOfFileEx

VB聲明

Declare Function MapViewOfFile& Lib "kernel32" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long)

Declare Function MapViewOfFileEx& Lib "kernel32" (ByVal hFileMappingObject As Long, ByVal dwDesiredAccess As Long, ByVal dwFileOffsetHigh As Long, ByVal dwFileOffsetLow As Long, ByVal dwNumberOfBytesToMap As Long, lpBaseAddress As Any)

說明

將一個文件映射對象映射到當(dāng)前應(yīng)用程序的地址空間。MapViewOfFileEx允許我們指定一個基本地址來進行映射

返回值

Long,文件映射在內(nèi)存中的起始地址。零表示出錯。會設(shè)置GetLastError

參數(shù)表

參數(shù)

類型及說明

hFileMappingObject

Long,文件映射對象的句柄

dwDesiredAccess

Long,下述常數(shù)之一:

FILE_MAP_WRITE

映射可讀可寫。文件映射對象必須通過PAGE_READWRITE訪問創(chuàng)建

FILE_MAP_READ

映射只讀。文件映射對象必須通過PAGE_READ 或 PAGE_READWRITE訪問創(chuàng)建

FILE_MAP_ALL_ACCESS

與FILE_MAP_WRITE相同

FILE_MAP_COPY

映射時保留寫操作的副本。文件映射對象必須用PAGE_WRITECOPY訪問在win95下創(chuàng)建

dwFileOffsetHigh

Long,文件中映射起點的高32位地址

dwFileOffsetLow

Long,文件中映射起點的低32位地址

dwNumberOfBytesToMap

Long,文件中要映射的字節(jié)數(shù)。用零映射整個文件映射對象

lpBaseAddress

Long,指定映射文件映射對象的地址。如這個地址處沒有足夠的內(nèi)存空間,那么對MapViewOfFileEx的調(diào)用會失效。零表示允許windows尋找一個地址

注解

dwFileOffsetLow和dwFileOffsetHigh必須反映一個偏移距離,它由系統(tǒng)的內(nèi)存分配精度決定。例如,假設(shè)系統(tǒng)的內(nèi)存精度是64KB(即最小分配單位是64KB),則這些值必須是64KB的整數(shù)倍。大多數(shù)應(yīng)用程序都簡單的用零從文件的起始處開始映射。lpBaseAddress也必須是內(nèi)存分配精度的整數(shù)倍

其他

聲明中的參數(shù)類型為Any,而參數(shù)表中都是Long,我也不明白。但關(guān)于這個函數(shù)的英文資料的確是這樣的。

Top