我正在编写一个带有一些输出(Console.WriteLine("...");)的简单C#程序.问题是,每次运行它时,我都无法在输出窗口中看到程序的输出.
已经检查了"程序输出"标签,我已经将所有输出重定向到中间窗口但无效.
如何启用查看程序的输出?
我认为问题不在于我的代码.我尝试运行一个简单的程序,只输出一个字符串和readline"ala hello world",我仍然无法看到任何输出.问题是我在错误的位置寻找输出或者Visual Studio表现出来.
该debug.write方法也不起作用.
使用debug.Write,这一切都有效,尽管之前没有.在我重新开始之前,或者我需要休息一下,或者我需要休息,无论哪种方式,现在一切都很好.感谢所有有用的评论=)
我最近遇到了与Windows命令提示符的问题,即启用,并单击窗口中选择文本,然后挂一个正在运行的程序快速编辑模式.这,显然,称为行为,我发现与此相关的几个问题:
应用程序如何"暂停"/"暂停"?该过程是否与SIGSTOP*nix上的信号类似?(我也有兴趣了解为什么这个功能首先存在?它似乎不直观且危险.)
我是C#的新手并下载了Microsoft Visual Studio 2015的免费版本.为了编写第一个程序,我创建了一个Windows窗体应用程序.现在我 Console.Out.WriteLine()用来打印一些测试数据.但是我在哪里可以阅读控制台?
我希望从命令行以编程方式运行我的一个Windows窗体应用程序.在准备中,我将自己类中的逻辑与Form分开.现在我陷入困境,试图让应用程序根据命令行参数的来回来回切换.
这是主类的代码:
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
string[] args = Environment.GetCommandLineArgs();
if (args.Length > 1) // gets passed its path, by default
{
CommandLineWork(args);
return;
}
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Form1());
}
private static void CommandLineWork(string[] args)
{
Console.WriteLine("It works!");
Console.ReadLine();
}
Run Code Online (Sandbox Code Playgroud)
Form1我的表单在哪里,It works!字符串只是实际逻辑的占位符.
现在,当从Visual Studio中运行此命令(使用命令行参数)时,短语It works!将打印到输出.但是,当运行/bin/Debug/Program.exe文件(或/ Release)时,应用程序崩溃.
我是以正确的方式来做这件事的吗?让我的逻辑类成为由两个独立应用程序加载的DLL会更有意义(即花费更少的开发人员时间)吗?还是有一些我不知道的完全不同的东西?
提前致谢!
我需要编写一个围绕第三方api的包装器,它会使用消息泵,因此根据是否在UI线程(例如在wpf应用程序中)实例化包装器(例如控制台应用程序),需要对其进行非常不同的处理).
如果它不在UI线程上运行,那么我需要一个调度程序并实现我自己的消息泵.
为此,我需要知道包装器是否在wpf应用程序中实例化.仅确定实例化是否发生在UI线程上是不够的(即使在wpf应用程序中,实例化包装器的线程可能不是UI线程).
有什么办法我可以弄清楚我是在一个带有消息泵或控制台应用程序的wpf或windows窗体环境中我必须实现自己的消息泵吗?
谢谢
我在Visual Studio 2008中创建了一个VB.NET Windows窗体应用程序.当我从命令行运行我的程序时,我没有输出(只有下一个提示).
我究竟做错了什么?
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Debug.Write("Foo")
Debug.Flush()
Console.WriteLine("foo")
Console.Beep(800, 100) 'confirm this function is called'
Me.Close()
End Sub
Run Code Online (Sandbox Code Playgroud)
编辑:程序可以有一个表单和一个控制台吗?
编辑2:何的答案有效.但是,输出显示在下一个命令行提示符下.Winforms应用程序可以告诉命令行等到它完成而不是立即返回吗?
可能重复:
如何在表单应用程序中显示控制台输出/窗口?
ac#winforms程序有没有办法写入控制台窗口?
所以我正在使用的程序可以使用以下代码在CMD中使用命令行启动.
string[] commandLines = Environment.GetCommandLineArgs();
Run Code Online (Sandbox Code Playgroud)
但是我希望能够在处理命令行之后将消息返回到CMD窗口.任何帮助,将不胜感激.
编辑:我将程序作为Windows应用程序运行,而不是控制台应用程序.
我有一个简单的问题,我确信它已被回答,但我似乎无法找到我正在寻找的解决方案.
我的基本问题是我在.Net中创建了一个控制台应用程序,它每天在任务调度程序上自动运行,但现在我的客户端还需要一个基于Windows窗体的界面,他们可以使用它来运行特殊的运行(他们使用GUI指定一些参数 - 例如特定日期等 - 以使程序运行有点不同).
我想这样做的方法是将我的控制台应用程序转换为WinForm解决方案,并包含命令行参数,以便我希望它作为默认的原始控制台应用程序运行,但我认为这不是正确的方法,因为它仍然会涉及表单加载.
我的另一个想法是将"引擎"部分转换为DLL并制作2个可执行文件 - 一个是控制台应用程序,另一个是winforms应用程序,但我不确定这是否正确/可能导致更多维护.
这样做的正确方法是什么?
我在VB中写这个,但如果对你来说更容易,我对C#解决方案同样感到满意.
谢谢!!
好的,在需要 Winform 时,我也一直使用AllocConsole()控制台输出的方法,因为在写入控制台时我使用了多种颜色。
使用 VS 2015 及更低版本,调试模式下的 AllocConsole 始终正常工作,正确Console.WriteLine写入。现在使用 VS 2017,控制台在调用 AllocConsole 时显示,但是,console.WriteLine 输出到该控制台,而不是到 Visual Studio 的输出窗口。
我更喜欢使用 AllocConsole 而不是输出窗口,因为我非常依赖颜色。我已经做了很多关于如何解决这个问题的搜索,但我似乎无法找到答案。