[英]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()
線。
兩點:
Test.exe
的工作目錄( StartInfo.WorkingDirectory
)設置為該進程具有寫訪問權的目錄,並且 Test.exe
需要進程提升,請使用StartInfo.UseShellExecute = true
和StartInfo.Verb = "runas"
啟動提升的進程。 您的C#程序需要經過提升的流程才能執行此操作,您可以為此使用應用程序清單文件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.