c++基础-求救,C++执行出来程序死掉

问题描述

求救,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-08-29 07:26:11

c++基础-求救,C++执行出来程序死掉的相关文章

关于基于TCP网络编程程序死掉问题。

问题描述 服务器点击运行后程序死掉,不知何原因.关键问题在服务器类中的开启线程方法中出了问题.直接上代码,希望高手能指点下迷津,说出错误的原因,感激不尽.服务器类:importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.io.IOException;importjava.net.ServerSocket;importjava.net.Socket;importjavax.swing.JButt

求助:c#调用单光子计数器API函数,采集循环随机次后程序死掉

问题描述 大家好,写了个程序调用单光子计数器的API函数,是进行循环n次采集的,但是采集了很多次后就死机了,不知道什么原因?单次采集的过程就是:ushorth=0:C8855Reset(handle);C8855Setup(Gatetime,2,numberofgate);C8855CountStart(handle,0);C8855ReadData(handle,datebuffer,refresult);for(inti=0;i<numberofgate;i++){h=datebuffer[

java swing 一个窗口打开新创口 加上go()程序就死掉了

问题描述 java swing 一个窗口打开新创口 加上go()程序就死掉了 import javax.swing.*; import java.awt.Rectangle;import java.awt.event.*; public class Swing7 extends JFrame implements ActionListener { JButton jb = new JButton(); public Swing7() { this.setTitle(""Java--&q

急啊,BackgroundWorker 控件和切换输入法造成程序死机的问题

问题描述 如题,我在winform程序中使用BackgroundWorker控件来处理界面数据,以防止程序出现未响应的状态,并且根据需求,在程序运行的过程中需要一直使用到BackgroundWorker控件进行后台处理,但是,我在界面上,或者其他的弹出窗体上进行切换输入法时,程序会出现未响应而死掉,这是咋回事呀? 解决方案 解决方案二:遇到过..不过忘记解决方法了和线程有关是不是用到了timer的定时执行之类解决方案三:引用1楼luochanghua的回复: 遇到过..不过忘记解决方法了和线程有

android程序,在运行时莫名的死掉,只打印一堆GC信息,其他调试信息看不到

问题描述 android程序,在运行时莫名的死掉,只打印一堆GC信息,其他调试信息看不到 这个程序主要开辟子线程,从服务器获取图片的url,然后利用url从网络下载图片的.运行时,不知何种原因,莫名的死掉,只能打印出一堆GC信息 解决方案 检查你用的这台手机,后台Log开关是否打开了. 百度一下 解决方案二: 从你的描述看,应该是低配置机器的java虚拟机heapsize设置得比较小造成的. 你可以参考下面这个链接,修改一下你的Manifest文件试试. 如果低端机的本身限制了Heapsize,

如何禁止某个目录执行ASP程序

如何设置一个目录,禁止执行ASP程序 比如上传图片的目录.防止上传木马等. 方法很简单. 在IIS里设置,进去站点里浏览文件夹,然后又键属性,在目录的执行权限那里选"无",就行了

Windows编程:终止可执行(exe)程序 代码(C++)

终止可执行(exe)程序, 首先遍历进程, 找到进程名称对于的进程ID号, 然后根据进程ID, 终止进程. 示例代码: 包括遍历进程代码, 和关闭代码. 代码: /* * main.cpp * * Created on: 2014.06.08 * Author: Spike */ /*vs 2012*/ #include <iostream> #include <string> #include <map> #include <windows.h> #inc

Windows编程:启动可执行(exe)程序 代码(C++)

通过输入程序位置启动可执行(exe)程序, 使用windows的CreateProcess()函数, 即可. 示例是调用预先生产的可执行(exe)程序. 代码: /* * main.cpp * * Created on: 2014.06.08 * Author: Spike */ /*vs 2012*/ #include <iostream> #include <windows.h> using namespace std; bool startProcess (const std

教你在Java中执行其它程序

在编写Java程序时,有时候需要在Java程序中执行另外一个程序. 1.启动程序Java提供了两种方法用来启动其它程序: (1)使用Runtime的exec()方法 (2)使用ProcessBuilder的start()方法 不管在哪种操作系统下,程序具有基本类似的一些属性.一个程序启动后就程序操作系统的一个进程 ,进程在执行的时候有自己的环境变量.有自己的工作目录.Runtime和ProcessBuilder提供了不同的方 式来启动程序,设置启动参数.环境变量和工作目录. 能够在Java中执行