0

MSDNWebサイトのカスタムコンパイラを使用しています。いくつかのテストコードをコンパイル/実行しようとすると(.exeにドラッグアンドドロップ)、コンソールウィンドウは、閉じることを選択するまで開いたままではなく、開いてから閉じます。どうすれば開いたままにできますか?

ソース: http: //msdn.microsoft.com/en-us/magazine/cc136756.aspx#S8

Program.cs

if (args.Length != 1)
        {
            // Display title, reset cursor to normal, add space
            Console.WriteLine("Alt ver 1.0 (Alpha)");
            Console.WriteLine();
            Console.ReadLine();
            try
            {
                Scanner scanner = null;
                using (TextReader input = File.OpenText(args[0]))
                {
                    scanner = new Scanner(input);
                }
                Parser parser = new Parser(scanner.Tokens);
                CodeGen codeGen = new CodeGen(parser.Result, Path.GetFileNameWithoutExtension(args[0]) + ".exe");
            }
            catch (Exception e)
            {
                Console.Error.WriteLine(e.Message);
                Console.ReadLine();
            }
        } //if
4

1 に答える 1

1

ブロックConsole.ReadLine(); 内の最後にを追加してこれを試してくださいtry

    if (args.Length != 1)
            {
                // Display title, reset cursor to normal, add space
                Console.WriteLine("Alt ver 1.0 (Alpha)");
                Console.WriteLine();
                Console.ReadLine();
                try
                {
                    Scanner scanner = null;
                    using (TextReader input = File.OpenText(args[0]))
                    {
                        scanner = new Scanner(input);
                    }
                    Parser parser = new Parser(scanner.Tokens);
                    CodeGen codeGen = new CodeGen(parser.Result, Path.GetFileNameWithoutExtension(args[0]) + ".exe");
                }
                catch (Exception e)
                {
                    Console.Error.WriteLine(e.Message);
                    Console.ReadLine();
                }
finally
{
Console.Readkey();
}
            } //if
else
{
Console.WriteLine("no args");
Console.ReadKey();
}

編集:---引数の問題を渡す私はこのプログラムを作成しました、そしてそれは引数としてファイル名を取得する限り完全に機能します
見てください

class Program
    {
        static void Main(string[] args)
        {
            if (args.Length > 0)
            {
                foreach (var arg in args)
                {
                    Console.WriteLine(arg);
                }
                Console.ReadKey();
            }
            else
            {
                Console.WriteLine("NO ARGS");
                var fileName = Console.ReadLine();
                Main(new string[] { fileName });
            }
        }
    }
于 2012-10-17T10:51:28.337 に答える