簡體   English   中英

從C#調用C ++程序時出現問題

[英]Problem calling a C++ program from C#

我有一個C ++程序(Test.exe),它接受一個數字N (作為命令行參數傳遞),並為寫入文本文件的N個矩形生成坐標。

我已經通過命令行和在Visual Studio中對此進行了測試,並且在兩種情況下都使用預期的輸出寫入文件。

在C#程序中,我在文本框中輸入N ,單擊一個按鈕,我的事件代碼如下:

Process p = new Process();
p.StartInfo.FileName = "Test.exe";
p.StartInfo.Arguments = num;
p.Start();
// read the file that Test.exe created

文件不是由Test.exe寫入的。

關於從C#程序調用Test.exe為什么不寫文件的任何建議?

發現問題將文件從而不是C ++程序所在的位置寫入執行C#程序的目錄中。

我想你忘記了p.WaitForExit()后右p.Start()線。

兩點:

  1. 確保將Test.exe的工作目錄( StartInfo.WorkingDirectory )設置為該進程具有寫訪問權的目錄,並且
  2. 如果Test.exe需要進程提升,請使用StartInfo.UseShellExecute = trueStartInfo.Verb = "runas"啟動提升的進程。 您的C#程序需要經過提升的流程才能執行此操作,您可以為此使用應用程序清單文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM