Visual Studio에서 실행되는 C++ 콘솔 앱이 있습니다. 이렇게하면 데이터가 수집되어 모든 원시 데이터와 함께 콘솔에 표시됩니다.C# 콘솔 앱 내에서 C++ 콘솔 앱 실행
다른 정보 (C#)는이 정보를 수집하여 UI에 표시하는 데 사용됩니다.
IT는 C# 한 내부 C++ 하나를 넣어 두 가지를 결합하는 것이 가능되도록 C++ 응용 프로그램은 패널 또는 유사한 아무것도의 정보를 출력 한 서비스로 동시에 두 실행?감사합니다. :)
Visual Studio에서 실행되는 C++ 콘솔 앱이 있습니다. 이렇게하면 데이터가 수집되어 모든 원시 데이터와 함께 콘솔에 표시됩니다.C# 콘솔 앱 내에서 C++ 콘솔 앱 실행
다른 정보 (C#)는이 정보를 수집하여 UI에 표시하는 데 사용됩니다.
IT는 C# 한 내부 C++ 하나를 넣어 두 가지를 결합하는 것이 가능되도록 C++ 응용 프로그램은 패널 또는 유사한 아무것도의 정보를 출력 한 서비스로 동시에 두 실행?감사합니다. :)
매우 빠른 예는 이것이다 새로운 것이 나올 때마다 내 텍스트 상자를 업데이트 한 방법은 logMessage()입니다.
. 내가 너에게 표를 줬어! 이 코드에서 Process 및 StreamReader 함수에 필요한 지시문은 무엇입니까? –
는 난 그냥 myProcess.StartInfo.Arguments = commandLineArgs 배를 나열하거나 그 아래 2 줄을 허용 할 2 commandLineArgs을 갖고 싶어? 이 인스턴스에서 StartInfo는 무엇입니까? 감사 ! –
내가 이해하는 것처럼 C# 응용 프로그램에서 C++ 응용 프로그램을 실행할 수 있으며 다른 프로세스에서 시작하고 해당 프로세스의 표준 출력을 리디렉션하여 원하는 방식으로 사용할 수 있습니다. 예를 들어 패널에 넣을 수 있습니다.
private void executeCommand(string programFilePath, string commandLineArgs, string workingDirectory)
{
Process myProcess = new Process();
myProcess.StartInfo.WorkingDirectory = workingDirectory;
myProcess.StartInfo.FileName = programFilePath;
myProcess.StartInfo.Arguments = commandLineArgs;
myProcess.StartInfo.UseShellExecute = false;
myProcess.StartInfo.CreateNoWindow = true;
myProcess.StartInfo.RedirectStandardOutput = true;
myProcess.StartInfo.RedirectStandardError = true;
myProcess.Start();
StreamReader sOut = myProcess.StandardOutput;
StreamReader sErr = myProcess.StandardError;
try
{
string str;
// reading errors and output async...
while ((str = sOut.ReadLine()) != null && !sOut.EndOfStream)
{
logMessage(str + Environment.NewLine, true);
Application.DoEvents();
sOut.BaseStream.Flush();
}
while ((str = sErr.ReadLine()) != null && !sErr.EndOfStream)
{
logError(str + Environment.NewLine, true);
Application.DoEvents();
sErr.BaseStream.Flush();
}
myProcess.WaitForExit();
}
finally
{
sOut.Close();
sErr.Close();
}
}
확실히 완벽은 아니지만는 PowerShell 스크립트를 실행할 때, 나는 여러 줄 텍스트 상자 업데이트의 출력을보고 있었다 일 : 내가 전에 말했듯이 내가 뭔가를해야
관리되는 C++입니까? 직접 사용할 수 있습니다. 그것이 관리되지 않으면'Process' 클래스를 사용하여 프로세스 (콘솔 응용 프로그램)를 시작할 수 있습니다. 제출에 대한 감사합니다 –