问题描述
- 求救,C++执行出来程序死掉
-
下边是我写的一点代码,编译能过,但是执行程序的时候程序就卡死了,求大家帮忙!谢谢!
int USB_ADBcommand( char *sPath, char *sCommand, char *sInfo )
{char sBuf[10240]; const int PIPE_BUFFER_SIZE = 10240; HANDLE hReadPipe; HANDLE hWritePipe; STARTUPINFO adbProcStartup; SECURITY_ATTRIBUTES sa = { sizeof(SECURITY_ATTRIBUTES),NULL, TRUE }; BOOL bResult = CreatePipe(&hReadPipe, &hWritePipe ,&sa, PIPE_BUFFER_SIZE); if( bResult == 0 ) return 0; PROCESS_INFORMATION adbProcInfo; memset(&adbProcInfo, 0, sizeof(PROCESS_INFORMATION)); memset(&adbProcStartup, 0, sizeof(STARTUPINFO)); adbProcStartup.cb = sizeof(STARTUPINFO); adbProcStartup.dwFlags = STARTF_USESTDHANDLES | STARTF_USESHOWWINDOW; adbProcStartup.hStdOutput = hWritePipe; adbProcStartup.hStdInput = hReadPipe; adbProcStartup.wShowWindow = SW_HIDE; if (strlen(sPath) > 0) sprintf(sBuf, "%s//%s", sPath, sCommand); else sprintf(sBuf, sCommand); if(!CreateProcess(NULL,sBuf,NULL,NULL,TRUE,NULL,NULL,NULL,&adbProcStartup, &adbProcInfo)) { AfxMessageBox("进程错误()"); return -1; } char szFileBuf[PIPE_BUFFER_SIZE] ={0}; DWORD dwByteRead = 0;
// WriteFile(hWritePipe,szFileBuf ,strlen(szFileBuf), &dwByteRead, NULL);
// sprintf(sInfo, szFileBuf);ReadFile(hReadPipe, szFileBuf, PIPE_BUFFER_SIZE, &dwByteRead, NULL); sprintf(sInfo, szFileBuf); CloseHandle(hWritePipe); CloseHandle(hReadPipe); return 0;
}
////////////////////////////////////////////////////////////////////////////
void CPCToolsDlg::OnBUTTONReadadder()
{
// TODO: Add your control notification handler code here
char sPath[64], sCmd[64], sInfo[10240];sprintf(sPath, "C://Windows//system32"); sprintf(sCmd, "adb shell getbledevice");
// sprintf(sCmd, "adb shell");
int ret = USB_ADBcommand(sPath, sCmd, sInfo);AfxMessageBox(""); GetDlgItem(IDC_EDIT_MessageBox)->SetWindowText(sInfo);
解决方案
显卡你代码卡死在什么地方,可能是USB,adb等没有返回,所以阻塞了
时间: 2024-11-05 19:01:52