相关疑难解决方法(0)

使用AllocConsole和目标体系结构x86时没有控制台输出

我有一个WinForms项目,如果用户想要一个调试控制台,我会分配一个控制台AllocConsole().

所有控制台输出都正常工作,目标架构设置为"任何CPU",但当我将其更改为"x86"时,它不输出任何内容(Console.Read()仍然按预期工作).如果我直接打开EXE,则输出有效.看起来Visual Studio将其重定向到它自己的"输出"窗口.

我也试过这个答案,但它没有用,我也尝试过Console.SetOut(GetStdHandle(-11)),但也没用.

将目标体系结构设置为"任何CPU"对我来说是没有选择的.

所以这是我的两个问题:

  • 为什么只有当目标体系结构设置为x86时才会出现这种情况?
  • 在Visual Studio中运行时如何输出到我的控制台?

.net c# pinvoke

22
推荐指数
4
解决办法
2万
查看次数

启动命令窗口并在其中运行命令

我需要用一些参数启动命令窗口并在里面运行更多命令.

例如,启动test.cmd并运行mkdir.

我可以使用processstartinfo启动test.cmd,但我不确定如何运行更多命令.我可以将更多参数传递给test.cmd进程吗?

我该怎么做?

无法添加评论来回答...所以写在这里.

安德里亚,这就是我想要的.但是上面的代码对我来说不起作用.

我正在启动一个test.cmd,这是一个新的命令环境(比如razzle构建环境),我需要运行更多的命令.

psi.FileName = @"c:\test.cmd";
psi.Arguments = @"arg0 arg1 arg2";

psi.RedirectStandardInput = true;
psi.RedirectStandardOutput = true;
psi.CreateNoWindow = true;
psi.UseShellExecute = false;

Process p = new Process();
p.StartInfo = psi;
p.Start();
p.StandardInput.WriteLine(@"dir>c:\results.txt");
p.StandardInput.WriteLine(@"dir>c:\results2.txt"); 
Run Code Online (Sandbox Code Playgroud)

c# command-line

11
推荐指数
1
解决办法
2万
查看次数

将Winform App转换为Console应用程序

是否有快速而肮脏的方式(或VS宏)将WinForms应用程序转换为控制台应用程序?我有许多这些应用程序不再需要作为Winforms应用程序.我想我可以创建一堆新项目并复制粘贴模块和类,但如果只是删除我所拥有的单个表单并编辑/删除一些内容,我宁愿这样做.

.net console-application visual-studio-2010 winforms

7
推荐指数
2
解决办法
1万
查看次数