诡异加猥琐哦先记录一下,以备后用

#include <windows.h>
#include <stdlib.h>
#include <stdio.h>

BOOL GetMapAddr(char* lpFileName, DWORD& dwAddr)
{
HANDLE hFile = INVALID_HANDLE_VALUE;
HANDLE hMap = INVALID_HANDLE_VALUE;
BOOL bRet = FALSE;

hFile = CreateFile(lpFileName, GENERIC_READ|GENERIC_WRITE, FILE_SHARE_READ|FILE_SHARE_WRITE,
NULL,OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

if (hFile == INVALID_HANDLE_VALUE)
goto Exit0;

hMap = CreateFileMapping(hFile, NULL, PAGE_READWRITE, 0, 0, NULL);

if (hMap == NULL)
goto Exit0;

dwAddr = (DWORD)MapViewOfFile(hMap, FILE_MAP_WRITE, 0, 0, 0);

if (dwAddr == NULL)
goto Exit0;

bRet = TRUE;

Exit0:

if (hMap != INVALID_HANDLE_VALUE)
{
CloseHandle(hMap);
}

if (hFile != INVALID_HANDLE_VALUE)
{
CloseHandle(hFile);
}

return bRet;
}

int main(int argc, char* argv[])
{
DWORD dwAddr = 0;
if (GetMapAddr("a.txt", dwAddr))
{
strcat((char*)dwAddr, "a.txt");
int nLen = strlen((char*)dwAddr);
FlushViewOfFile((LPVOID)dwAddr, nLen);

printf("%s\r\n", (char*)dwAddr);

if (!UnmapViewOfFile((LPVOID)dwAddr))
{
printf("UnmapViewOfFile error!\r\n");
}

}

system("pause");

return 0;
}
posted @ 2012-03-23 15:38  小白菜盼末日  阅读(229)  评论(0)    收藏  举报