小周今天给分享控制台应用程序的知识,其中也会对编写一个控制台应用程序进行解释,希望能解决你的问题,请看下面的文章阅读吧!

控制台应用程序 编写一个控制台应用程序控制台应用程序 编写一个控制台应用程序


控制台应用程序 编写一个控制台应用程序


控制台应用程序 编写一个控制台应用程序


控制台应用程序 编写一个控制台应用程序


1、代码没问题,但是做的事情多余了。

2、满足以下几点就可以了:输出方式为控制台应用程序有参数时,直接做该做的事情,不需要AllocConsole或FreeConsole,也就是保持原本的状态。

3、无参数时,调用FreeConsole释放掉控制台,再运行Form。

4、 这个方式有个问题,也不够完美,就是在FreeConsole之前还是会有个黑色窗口一闪而过的。

5、就是你的第二个方案。

6、但是相比方案一而言,应该是好很多的int[] score;。

7、要用AllocConsole把流写入前面的控制台,有看到过解决方案,但是极其复杂且有兼容性问题,不建议做过多研究。

8、我在本地测试了一下,基本符合你的要求using System;using System.Collections.Generic;using System.Linq;namespace WindowsFormsApplication2{static class Program{[DllImport("kernel32.dll")]static extern bool AttachConsole(int dwProcessId);/好了,介绍完了,相信大家也都掌握了在VS2010下编译C的方法,这样装了VS2010的同学也就不用再费事装VC6.0了,VS很好很强大,其他的功能大家自己慢慢摸索吧,呵呵,不说啦。

9、// /// 应用程序的主入口点。

10、/// [STAThread]static void Main(string[] args){if (args.Length > 0){AttachConsole(-1);return;}Application.EnableVisualStyles();Application.SetCompatibleTextRenderingDefault(false);Application.Run(new Form1());}C#不精通,只是提个思路:主程序执行前加个“壳”Form1,Form1接收带参数的执行命令,由Form1来判断是用控制台还是用windows应用程序。

11、load加自动判断,是Console还是调Form2。

12、Form1在托盘的图标可以作为一个控制台,加个右键菜单什么的作为扩展应用。

13、例如可以自如切换控制台模式还是windows模式。

14、笨方法,不喜勿喷,谢谢。

15、一般来说,你的要求是无法实现的,除非你自己模拟黑窗口。

16、一个比较简单的解决方案,供参考:写3个exe,依次为 test.exe,test_cmd.exe,test_win.exe,其中,test.exe 是一个 WinAPP,也就是你要直接打开的,不带参数就由其打开 test_win.exe(WinAPP),带参数就由其打开 test_cmd.exe(黑窗口APP,本质是的DOS EXE)。

17、新建一个窗体项目,和控制台分开,生成2个EXE,双击控制台test.exe时,test.exe运行窗体EXE控件台不用PInvoke调,程序本身就有,你用ReadKey就可以不自动退出,你自己可以定义当输入什么字符时退出。

本文到这结束,希望上面文章对大家有所帮助。