我需要從My C#應用程序編譯C++程序。在我按下按鈕時,我需要打開cl.exe。任何人都可以給我一些示例代碼。從C#應用程序打開cl.exe
回答
string filePath = "c:\program files\xyz\cl.exe";
System.Diagnostics.Process.Start(filePath);
嗨,當我使用這種方法時,它將顯示以下錯誤。如何傳遞樁名CL.EXE System.ComponentModel.Win32Exception了未處理 消息=「系統找不到指定文件」 源=「系統」 錯誤碼= -2147467259 NativeErrorCode = 2 堆棧跟蹤: – Kasun 2010-06-15 05:23:39
放入CL.exe的完整路徑,例如「c:\ program files \ xyz \ cl.exe」 – 2010-06-15 07:24:37
這不是正確的答案,cl.exe需要將mspdb100.dll(和其他一些項目)放在%PATH%中。我在下面概述了真正的解決方案。 – 2013-08-29 04:18:28
如果你想打開一些EXE可以使用:Process.Start("cl.exe");
嗨,當我使用這種方法時,它會顯示以下錯誤。我怎樣才能通過堆名稱爲CL.exe System.ComponentModel.Win32Exception是未處理消息=「系統找不到指定的文件」Source =「System」ErrorCode = -2147467259 NativeErrorCode = 2 StackTrace – Kasun 2010-06-15 05:23:59
您需要提及正確的路徑的exe。 – anishMarokey 2010-06-15 06:31:44
cl.exe時需要DLL的不在%PATH%。您需要爲架構執行正確的批處理(x86與64位)。這將更新您的環境,以便您可以正確啓動cl.exe。
86就設在這裏(VS2010):
- C:\ Program Files文件(x86)的\微軟的Visual Studio 10.0 \ VC \ BIN \ VCVARS32.BAT
我目前啓動命令控制檯,執行批處理,然後在我的臨時文件上啓動編譯。
string tempPath = Path.GetTempPath();
string tempName = "scrap_" + random.Next();
Process compiler = new Process();
compiler.StartInfo.FileName = "cmd.exe";
compiler.StartInfo.WorkingDirectory = tempPath;
compiler.StartInfo.RedirectStandardInput = true;
compiler.StartInfo.RedirectStandardOutput = true;
compiler.StartInfo.UseShellExecute = false;
compiler.Start();
compiler.StandardInput.WriteLine("\"" + @"C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\vcvars32.bat" + "\"");
compiler.StandardInput.WriteLine(@"cl.exe /nologo /EHsc " + tempName + ".cpp");
compiler.StandardInput.WriteLine(@"exit");
string output = compiler.StandardOutput.ReadToEnd();
compiler.WaitForExit();
Debug.Write(output);
compiler.Close();
我目前正在研究直接啓動VCVARS32.BAT,但我不知道這是否正確更新環境對我的C#應用程序。我會更新你,如果我得到它的工作。
此外,請確保您已閱讀並理解這一主題接受的答案:你嘗試過什麼ProcessStartInfo hanging on "WaitForExit"? Why?
- 1. C# - 如何打開Excel應用程序?
- 2. C#UWP打開WPF應用程序
- 3. C#Winforms應用程序打開第二個Winforms應用程序
- 4. 從C++應用程序打開目標c窗口
- 5. 從通用Windows應用程序打開外部應用程序
- 6. 從網站打開UWP應用程序
- 7. 從應用程序打開Lync聊天
- 8. 從網頁打開.NET應用程序
- 9. 從webapp打開本機應用程序
- 10. 從Java應用程序中打開Excel
- 11. 打開Twitter應用程序從意圖
- 12. 從JavaFX打開外部應用程序
- 13. 檢測從UILocalNotification應用程序打開
- 14. 從Gtalk打開桌面應用程序
- 15. 從WPF應用程序打開Outlook
- 16. 如何從EKEvent打開應用程序
- 17. 從android webview打開youtube應用程序
- 18. 從URL打開應用程序 - ios 10
- 19. 從iPhone應用程序打開iTunes
- 20. 從通知中打開應用程序
- 21. 從小部件打開應用程序
- 22. 從Python打開Excel應用程序
- 23. 從應用程序打開控制檯
- 24. 從網頁打開應用程序
- 25. 從我的應用程序打開iBooks
- 26. 從Android應用程序打開Gmail
- 27. 從iPhone打開PDF應用程序
- 28. 從Slider中打開Ionic2應用程序
- 29. 從後臺打開android應用程序
- 30. GCM - 從通知打開應用程序?
?執行cl.exe與執行任何其他進程沒有區別... – 2010-06-15 04:48:31
對不起,我無法得到它。 – Kasun 2010-06-15 04:51:00
http://www.csharp-station.com/howto/processstart.aspx – 2010-06-15 04:57:43