DllImport, Kernel32.dll
Хотел разобраться в работе статических методов класса Console и хотелось написать свой метод WriteLine. Прочитал множество топиков и уроков по этой теме, вроде как понял суть.
using static System.Console;
using System.Runtime.InteropServices;
namespace ConsoleApp1
{
class Program
{
private const uint STD_INPUT_HANDLE = 0xfffffff6;
[DllImport("kernel32.dll")]
private static extern int GetStdHandle(uint nStdHandle);
[DllImport("kernel32.dll", SetLastError = true)]
static extern int WriteConsoleA(int hConsoleOutput, object lpBuffer, int nNumberOfCharsToWrite, ref int lpNumberOfCharsWritten, object lpReserved);
static void Main()
{
WriteLineC("a");
}
public static void WriteLineC(string s)
{
int len = 0;
WriteConsoleA(GetStdHandle(STD_INPUT_HANDLE), s + "\n", s.Length + 2, ref len, 0);
}
}
}
Однако при запуске программы ничего не происходит, спокойно завершается. Дальше уже не получается разобраться. Кто-то знает как работают методы Write, Read в классе Console? Заранее спасибо.