C#:控制台程序与窗口程序的区别
要写一个程序:程序功能,连接设备,发送文件。1.实现发送功能的API没有回调函数,调用成功就会退出,所以如要写一个程序:程序功能,连接设备,发送文件。1.实现发送功能的A...
要写一个程序:程序功能,连接设备,发送文件。1.实现发送功能的API没有回调函数,调用成功就会退出,所以如
要写一个程序:程序功能,连接设备,发送文件。
1.实现发送功能的API没有回调函数,调用成功就会退出,所以如果整个程序放在控制台下,需要在最后通过Console.ReadLine();让程序暂停,等发送完成后,手动退出程序。
2.windows消息------在文件发送完成后,发送程序会收到一个消息。所以,如果整个程序放在窗口中,通过WndProc()可以很容易实现需要的功能。
3.由于某种原因,现在就是要将程序设计为控制台程序,本人想法,在程序的最后通过Application.Run(new Form1());调用窗口,再执行发送功能,希望可以通过这个窗口中的WndProc(),接收到消息。但事实上,发送成功,但没有接受到消息。
4.分析了一下控制台程序与窗口程序,发现差不多,为什么编译成窗口的程序可以收到消息,编译成控制台程序中的窗口收不到消息。 展开
要写一个程序:程序功能,连接设备,发送文件。
1.实现发送功能的API没有回调函数,调用成功就会退出,所以如果整个程序放在控制台下,需要在最后通过Console.ReadLine();让程序暂停,等发送完成后,手动退出程序。
2.windows消息------在文件发送完成后,发送程序会收到一个消息。所以,如果整个程序放在窗口中,通过WndProc()可以很容易实现需要的功能。
3.由于某种原因,现在就是要将程序设计为控制台程序,本人想法,在程序的最后通过Application.Run(new Form1());调用窗口,再执行发送功能,希望可以通过这个窗口中的WndProc(),接收到消息。但事实上,发送成功,但没有接受到消息。
4.分析了一下控制台程序与窗口程序,发现差不多,为什么编译成窗口的程序可以收到消息,编译成控制台程序中的窗口收不到消息。 展开
3个回答
展开全部
Windows应用程序是windows窗体应用程序,就是有图形化的GUI、有Windows消息循环机制的。控制台应用程序多了一个控制台,歼坦冲是命令行的CUI(那个黑黑的Dos窗口)。
程序的文件头某个位置指定了该程序是IMAGE_SUBSYSTEM_WINDOWS_GUI还是IMAGE_SUBSYSTEM_WINDOWS_CUI。图形化的GUI,或
命令行的CUI。如果是CUI,那么该程序就是控制台程序,它启动的时候就会被自动分配给一个控制台(Console)。在GUI程序中,窗口不是必要的,虽然信早绝大部分程序都有。准确的说,控制台程序也可以创氏歼建窗口(MessageBox.Show("")就可以了)。窗口程序也可以拥有一个控制台(AllocConsole API)。
程序的文件头某个位置指定了该程序是IMAGE_SUBSYSTEM_WINDOWS_GUI还是IMAGE_SUBSYSTEM_WINDOWS_CUI。图形化的GUI,或
命令行的CUI。如果是CUI,那么该程序就是控制台程序,它启动的时候就会被自动分配给一个控制台(Console)。在GUI程序中,窗口不是必要的,虽然信早绝大部分程序都有。准确的说,控制台程序也可以创氏歼建窗口(MessageBox.Show("")就可以了)。窗口程序也可以拥有一个控制台(AllocConsole API)。
微测检测5.10
2023-05-10 广告
2023-05-10 广告
您好!建议咨 深圳市微测检测有限公司,已建立起十余个专业实验室,企业通过微测检测就可以获得一站式的测试与认 证解决方案;(EMC、RF、MFi、BQB、QI、USB、安全、锂电池、快充、汽车电子EMC、汽车手机互 联、语音通话质量),认证遇...
点击进入详情页
本回答由微测检测5.10提供
展开全部
控制台的话是仿dos,单任务;window窗口是消息机制多窗裂卜口。
若是console的话,vs里进行明历可执行文件的代码前,产生该窗口;
若是window的话,vs不产生console窗口,应肆槐穗用成雪的窗口由用户自己创建
若是console的话,vs里进行明历可执行文件的代码前,产生该窗口;
若是window的话,vs不产生console窗口,应肆槐穗用成雪的窗口由用户自己创建
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你要明白Console其实只能在#标准输入流、输出流和错误流的其中做一些操作。都不做的迟扒话Console就会return 然后流捕获到return的值。Console退出码游昌。你现在应该做是创建一个线程让连接设备,发送文件这些代码封装起来把委托交给新线程操作,让Cosole挂起或者异步等待"活"干完,而不是写个ReadLine();ReadKey()傻等着他磨空都不知道具体啥时候"活"才干完。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询