AllocConsole (kernel32)
Last changed: -


C# Signature:

[return: MarshalAs(UnmanagedType.Bool)]
static extern bool AllocConsole();

VB.NET Signature:

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

User-Defined Types:



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.
    static void Main(string[] args)
        if (args.Length < 1)
            Application.Run(new Form1());
            Console.WriteLine("Hello, World!");
            Console.Write("Press a key to continue...");

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!