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ù)的英文資料的確是這樣的。 |