16,473
社区成员
发帖
与我相关
我的任务
分享
int main(int argc, char* argv[])
{
int n = 0;
HANDLE hFile = (HANDLE)argv[1];
/*if (argc != 2)
{
puts("caller.exe filename");
}*/
puts("i'm called");
// hFile = CreateFile("abc",GENERIC_WRITE,FILE_SHARE_WRITE,NULL,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
//szFileName = (HANDLE)argv[1];
// Creat
Sleep(5000);
BOOL b = WriteFile(hFile,"hello world",12,(unsigned long *)&n,NULL);
CloseHandle(hFile);
DWORD d = GetLastError();
printf("%d\r\n",d);
//printf("Hello World!\n");
printf("%x\r\n",hFile);
return 0;
}
int _tmain(int argc, _TCHAR* argv[])
{
// char buff[MAX_BUFF];
// char buff[256];
HANDLE hFile;
//安全属性
SECURITY_ATTRIBUTES fSa;
ZeroMemory(&fSa,sizeof(fSa));
fSa.nLength = sizeof(fSa);
fSa.bInheritHandle = TRUE;
fSa.lpSecurityDescriptor = NULL;
char pline[sizeof(HANDLE)];
//创建文件句柄
hFile = CreateFileA("c:\\test",GENERIC_WRITE,FILE_SHARE_WRITE,&fSa,CREATE_ALWAYS,FILE_ATTRIBUTE_NORMAL,NULL);
DWORD n = GetLastError();
if(n != 0)
{
puts("CreateFile Error");
exit(-1);
}
sprintf(pline," %x",hFile);
// strcat(chPath,path);
//启动信息
STARTUPINFOA si;
//子进程信息
PROCESS_INFORMATION pi;
//清空
ZeroMemory( &pi, sizeof(pi) );
ZeroMemory( &si, sizeof(si) );
si.cb = sizeof(si);
// Start the child process
// if(CreateProcessA("D:\\source\\kernel_obj\\app1\\called\Debug\\called.exe",NULL , NULL, &fSa, TRUE, 0, NULL, NULL, &si, &pi))
if(CreateProcessA("D:\\called.exe",pline ,&fSa,NULL, TRUE, 0, NULL, NULL, &si, &pi))
{
//按键之后再释放
getchar();
//Sleep(5000);
TerminateProcess(pi.hProcess,0);
CloseHandle( pi.hProcess );
CloseHandle( pi.hThread );
}
else
{
CloseHandle(hFile);
MessageBox(NULL,_T("创建失败!"),NULL,MB_OK);
HANDLE hProcess = GetCurrentProcess();//get current process
TerminateProcess(hProcess,0); //close process
}
//free(wBuf);
CloseHandle(hFile);
// Sleep(5000);
return 0;
}