65,184
社区成员




#define MAP_PREFIX L"Local\\"
#define MAP_NAME L"CallBackMap"
#define FULL_MAP_NAME MAP_PREFIX MAP_NAME
#define MAP_SIZE 65536
#define VIEW_OFFSET 0
#define VIEW_SIZE 0
void CALLBACK DecCBFun(long nPort, char * pBuf, long nSize, HK::FRAME_INFO * pFrameInfo, long nReserved1, long nReserved2)
{
printf("call g_DecCBFun suceess.\n");
printf("nPort=%d,nSize=%d,pFrameInfo.nWidth=%ld,pFrameInfo.nHeight=%ld,pFrameInfo.nStamp=%ld,pFrameInfo.nType=%ld,pFrameInfo.nFrameRate=%ld.\n",
nPort,nSize,pFrameInfo->nWidth,pFrameInfo->nHeight,
pFrameInfo->nStamp,pFrameInfo->nType,pFrameInfo->nFrameRate);
HANDLE hMapFile = NULL;
PVOID pView = NULL;
hMapFile = CreateFileMappingW(
INVALID_HANDLE_VALUE,
NULL,
PAGE_READWRITE,
0,
MAP_SIZE,
FULL_MAP_NAME
);
if (hMapFile == NULL)
{
AfxMessageBox(_T("CreateFileMapping failed \n", ));
goto Cleanup;
}
AfxMessageBox(_T("The file mapping is created\n"));
pView = MapViewOfFile(
hMapFile,
FILE_MAP_ALL_ACCESS,
0,
VIEW_OFFSET,
VIEW_SIZE
);
if (pView == NULL)
{
AfxMessageBox(_T("MapViewOfFile failed\n"));
goto Cleanup;
}
AfxMessageBox(_T("The file view is mapped\n"));
char* pszMessage = pBuf;
memcpy_s(pView, VIEW_SIZE, pszMessage,nSize);
AfxMessageBox(_T("This pBuf is written to the view\n"));
SYSTEMTIME s_t;
STARTUPINFOA s_i;
PROCESS_INFORMATION p_i;
ZeroMemory(&s_i,sizeof(s_i));
s_i.cb = sizeof(s_i);
ZeroMemory(&p_i,sizeof(p_i));
if(!CreateProcessA(NULL,"D:\\MyBackup\\我的文档\\Visual Studio 2010\\Projects\\SHOW\\Debug\\SHOW.exe",
NULL,NULL,FALSE,NULL,NULL,NULL,&s_i,&p_i)){
AfxMessageBox(_T(" Err"));
}
DWORD pid;
pid=p_i.dwProcessId;