<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      C# 使用ProcessStartInfo調用exe獲取不到重定向數據的解決方案

      emmmmm,最近在研究WFDB工具箱,C語言寫的,無奈本人C語言功底不夠,只想直接拿來用,于是打算通過ProcessStartInfo來調取編譯出來的exe程序獲取輸出。

      一開始就打算偷懶,從園子里的前輩blog上偷來部分代碼,和著自己寫的代碼差不多就寫了以下調取程序的代碼:

       1         /// <summary>
       2         /// 調用Exe核心代碼
       3         /// </summary>
       4         /// <param name="exeFileName"></param>
       5         /// <param name="args"></param>
       6         public void RunExe(string exeFileName, string args = "")
       7         {
       8             try
       9             {
      10 
      11                 Process p = new Process();
      12 
      13                 p.StartInfo = new ProcessStartInfo(exeFileName, args);
      14 
      15                 p.StartInfo.Arguments = args;
      16                 //p.StartInfo.WorkingDirectory = @"C:\MinGW\msys\1.0\home\61125\wfdb-10.6.1\build\bin";
      17                 p.StartInfo.UseShellExecute = false;
      18 
      19                 p.StartInfo.RedirectStandardOutput = true;
      20 
      21                 //p.StartInfo.RedirectStandardInput = true;
      22 
      23                 p.StartInfo.RedirectStandardError = true;
      24 
      25                 p.StartInfo.CreateNoWindow = false;
      26                 //綁定事件
      27                 p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
      28                 p.ErrorDataReceived += P_ErrorDataReceived;
      29 
      30                 p.Start();
      31                 p.BeginOutputReadLine();//開始讀取輸出數據
      32                 p.WaitForExit();
      33                 p.Close();
      34             }
      35             catch (Exception e)
      36             {
      37                 Console.WriteLine(e);
      38                 throw;
      39             }
      40         }

      然后使用時發現了問題,按照wfdb 中app的設計,直接調取exe是會彈出help內容的,可是我自己調用卻不行。

      無奈自己就搭建C環境,MinGw配合Visual Code配置了一把,踩了好多坑,才在windows環境下跑起了wfdb并能夠調試。具體坑就不談了。(有意愿的小伙伴可以和我溝通交流一下~)

      研究了C代碼發現異常輸出都是通過

      1 fprintf(stderr, "xxxxx")

      此類形式輸出的,搜索一下,查看了前輩的文章(http://www.rzrgm.cn/tshua/p/5730658.html)發現輸出流是有講究的,不是全部通過Output通道發送的

      于是困擾了我兩天的問題解決方案如下:

       1         /// <summary>
       2         /// 調用Exe核心代碼
       3         /// </summary>
       4         /// <param name="exeFileName"></param>
       5         /// <param name="args"></param>
       6         public void RunExe(string exeFileName, string args = "")
       7         {
       8             try
       9             {
      10 
      11                 Process p = new Process();
      12 
      13                 p.StartInfo = new ProcessStartInfo(exeFileName, args);
      14 
      15                 p.StartInfo.Arguments = args;
      16                 //p.StartInfo.WorkingDirectory = @"C:\MinGW\msys\1.0\home\61125\wfdb-10.6.1\build\bin";
      17                 p.StartInfo.UseShellExecute = false;
      18 
      19                 p.StartInfo.RedirectStandardOutput = true;
      20 
      21                 //p.StartInfo.RedirectStandardInput = true;
      22 
      23                 p.StartInfo.RedirectStandardError = true;
      24 
      25                 p.StartInfo.CreateNoWindow = false;
      26                 //綁定事件
      27                 p.OutputDataReceived += new DataReceivedEventHandler(p_OutputDataReceived);
      28                 p.ErrorDataReceived += P_ErrorDataReceived;
      29 
      30                 p.Start();
      31                 p.BeginOutputReadLine();//開始讀取輸出數據
      32                 p.BeginErrorReadLine();//開始讀取錯誤數據,重要!
      33                 p.WaitForExit();
      34                 p.Close();
      35             }
      36             catch (Exception e)
      37             {
      38                 Console.WriteLine(e);
      39                 throw;
      40             }
      41         }

      加入一行關鍵的

      p.BeginErrorReadLine();//開始讀取錯誤數據,重要!

      就解決了問題。

      emmmm。。(lll¬ω¬)

      僅以此篇隨筆防止其他小伙伴和我一樣走彎路≡(▔﹏▔)≡

       

      posted @ 2019-02-19 16:59  天命小豬  閱讀(5765)  評論(0)    收藏  舉報
      主站蜘蛛池模板: 九九成人免费视频| 国产午夜福利在线视频| 亚洲成av人片无码迅雷下载| 99久久国产成人免费网站| 18成禁人视频免费| 国产偷国产偷亚洲高清午夜| 日韩精品国产精品十八禁| 国内精品久久久久影院日本| 黑人精品一区二区三区不| 久久久久久综合网天天| 一本本月无码-| 激情综合色区网激情五月| 久热伊人精品国产中文| 久久国产精品免费一区| 国产av一区二区三区无码野战| 青青草国产自产一区二区| 男女啪啪高潮激烈免费版| 成人污视频| 亚洲国产精品日韩av专区| 成年女人永久免费观看视频| 激情六月丁香婷婷四房播| 国产成人久久精品一区二区| 亚洲精品久荜中文字幕| 亚洲av午夜福利大精品| 国产成人a在线观看视频免费| 野外做受又硬又粗又大视频√ | 国产午夜福利视频第三区| 成人免费A级毛片无码片2022| 日本高清一区二区三| 开心久久综合激情五月天| 成人无码潮喷在线观看| 久治县| 日本肉体xxxx裸交| 日韩精品一区二区三区在| 国产女人18毛片水真多1| 免费观看的av在线播放| 国产精品福利中文字幕| 欧美黑人又粗又大久久久| 无码人妻出轨黑人中文字幕| 亚洲免费成人av一区| 人妻丰满熟妇av无码区不卡|