Jak to działa z importowaniem bibliotek

0

Witam mam pewne pytanko, Albowiem zacząłem ostatnio interesować się jak np. zrobić jakiś wzór bądź coś narysować na pulpicie poza oknem aplikacji i gdy poszperałem w sieci zobaczyłem jak to się robi, ale zauważyłem ze często w kodze powtarzało sie importowanie dll i mam pytanie, dlaczego i jak działa takie importowanie dll, dlaczego nie można od razu całej biblioteki zaimportować nie znam jeszcze wszystkiego i bardzo bym chciał wiedzieć jak to działa.

Tutaj taki przykład żeby dokładniej było wiadomo o co mi chodzi

[DllImport("User32.dll")]
static extern IntPtr GetDC(IntPtr hwnd);

[DllImport("User32.dll")]
static extern void ReleaseDC(IntPtr dc);

private void DrawDeskTop()
{
  IntPtr desk = GetDC(IntPtr.Zero);
  using (Graphics g = Graphics.FromHdc(desk))
  {
    g.FillRectangle(Brushes.Red, new Rectangle((SystemInformation.WorkingArea.Width / 2) - 4, (SystemInformation.WorkingArea.Height / 2) - 20, 8, 40));
    g.FillRectangle(Brushes.Red, new Rectangle((SystemInformation.WorkingArea.Width / 2) - 20, (SystemInformation.WorkingArea.Height / 2) - 4, 40, 8));
  }
  ReleaseDC(desk);
}
1

Bo te dll operują na kodzie nie zarządzanym, a my w C# operujemy na kodzie zarządzanym przez co musimy się trochę natrudzić by dostać się na tamten świat:
Platform Invoke (P/Invoke)

0

A czy są może alternatywne metody żeby przesłać obraz od razu na pulpit bez podpinania tych dll?A jeżeli są to podał byś jakiś przykład? (w ramach nauki oczywiście)

0

Da się podpiąć bezpośrednio pod framebuffer i gryzdać po ekranie, ale trzeba tryb graficzny wyłączyć.

1 użytkowników online, w tym zalogowanych: 0, gości: 1