Вот минимальный пример, который использует функции GetDC
и SetPixel
, чтобы сделать то же самое, что и пример Python в указанном вопросе:
open System
open System.Runtime.InteropServices
[<DllImport("user32.dll",EntryPoint="GetDC")>]
extern IntPtr GetDC(IntPtr ptr)
[<DllImport("gdi32.dll")>]
extern uint32 SetPixel(IntPtr hdc, int X, int Y, uint32 crColor);
let dc = GetDC(IntPtr.Zero)
for i in 0 .. 255 do
let r, g, b = 255, i, 255
let clr = (r <<< 16) ||| (g <<< 8) ||| b
SetPixel(dc, i, 0, uint32 clr) |> ignore
Тем не менее, я не могу представить сценарий, в котором это было бы хорошо. Если вы создаете разумное приложение для Windows, вам наверняка захочется нарисовать что-нибудь в окне, принадлежащем вашему приложению.