Откройте консоль из С# DLL и распечатайте вывод, используя ее

Есть проект C# DLL. Он имеет один класс и один общедоступный метод Print(). Есть ли способ открыть консоль из этой DLL для отображения текста? DLL используется сторонней программой.

public class Logger // dll
{
    public void Print()
    {
        // Open Console
        // Standard output to console
    }
}

person andreikashin    schedule 06.07.2016    source источник
comment
Извините, правильный ответ - нет: stackoverflow.com/questions/671163/. Вы можете поместить вторую консоль в новый исполняемый файл и запустить ее из основной консоли с помощью Process.Start   -  person    schedule 06.07.2016


Ответы (1)


Я нашел простое и понятное решение здесь. Консоль выделяется с помощью метода AllocConsole(), вызываемого из kernel32:

Импорт:

[DllImport("kernel32")]
static extern bool AllocConsole();

Позвонить:

static void Main(string[] args) 
{
    //... magic happens here
    AllocConsole();
    Console.WriteLine("Hello!");
    //... continue magic
}
person andreikashin    schedule 14.07.2016