AllocConsole (kernel32)
Last changed: -117.28.243.175

.
Summary

C# Signature:

[DllImport("kernel32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool AllocConsole();

VB.NET Signature:

Declare Function AllocConsole Lib "kernel32.dll" () As Boolean

User-Defined Types:

None.

Notes:

If you need to check for an existing console (ie, if the program was launched from the command window) please see AttachConsole,

Tips & Tricks:

This is a simple way to create a "dual-mode" application can be a console or windows forms application.

Sample Code:

    // Compile as a Windows Forms app.
    [STAThread]
    static void Main(string[] args)
    {
        if (args.Length < 1)
        {
            Application.Run(new Form1());
        }
        else
        {
            AllocConsole();
            Console.WriteLine("Hello, World!");
            Console.Write("Press a key to continue...");
            Console.Read();
        }
    }

Sample Code:

    ' Compile as a Windows Forms Application
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

        If Not AllocConsole() Then
            MsgBox(String.Format("Failed to attach console with error: {0}", Marshal.GetLastWin32Error()))
        End If

        Console.WriteLine("Just saying 'hi' from the console.. :)")
        Console.WriteLine("{0} + {1} = {2}", 100, 200, (100 + 200))

    End Sub

Alternative Managed API:

Do you know one? Please contribute it!

Documentation