我想在用戶單擊Windows 8應用程序中的「Enter」按鈕時執行prolog文件。我可以執行一個單獨的序言文件,還是需要在我的C#代碼中寫入序言代碼。我正在使用visual studio 2013和SWI prolog。C#和Prolog集成
我想這樣做,因爲我正在開發一個應用程序,它將一個算術方程作爲用戶輸入,使用prolog來解決它並輸出答案。
我想在用戶單擊Windows 8應用程序中的「Enter」按鈕時執行prolog文件。我可以執行一個單獨的序言文件,還是需要在我的C#代碼中寫入序言代碼。我正在使用visual studio 2013和SWI prolog。C#和Prolog集成
我想這樣做,因爲我正在開發一個應用程序,它將一個算術方程作爲用戶輸入,使用prolog來解決它並輸出答案。
我推薦使用常規的Windows桌面環境而不是Windows應用商店(我在問題標籤中看到)。 Windows商店應用程序有很多限制,以防止人們創建惡意應用程序,這會阻止您啓動Prolog應用程序。
但是對於桌面應用程序,您可以在自己的進程中啓動Prolog解釋器,並將標準輸入和標準輸出流重定向。然後,您可以通過輸入流將內容發送到Prolog進程,並將Prolog進程的輸出流轉發到C#WinForms應用程序中的文本框。
該樣品在MSDN顯示瞭如何將進程的標準輸出流重定向:
http://msdn.microsoft.com/en-us/library/system.diagnostics.process.standardoutput%28v=vs.110%29.aspx
並與一些小的改動,以滿足您的需求:
Process myProcess = new Process();
ProcessStartInfo myProcessStartInfo = new ProcessStartInfo("prolog.exe", "arguments to the prolog process");
myProcessStartInfo.UseShellExecute = false;
myProcessStartInfo.RedirectStandardOutput = true;
myProcess.StartInfo = myProcessStartInfo;
myProcess.Start();
StreamReader myStreamReader = myProcess.StandardOutput;
// Read the standard output of the spawned process.
string myString = myStreamReader.ReadLine();
Console.WriteLine(myString);
你也可以創建一個可以加載到C#應用程序中的Prolog代碼的DLL版本,但是這需要更多的工作,我懷疑是否有足夠的好處來證明額外的工作。
看看http://stackoverflow.com/questions/181855/integrating-prolog-with-c-sharp – metaphori 2014-11-24 08:37:56