Ja, wie nur? Ich versuche, rechenintensive Teile in eine DLL auszulagern, es sollen später alle Pixel einer Bitmap ausgelesen werden.
• Wie übergebe ich ein Bitmap-Handle?
• Wie übergebe ich dann einen String?
• Muss ich die GDI+ in Freebasic auch hochfahren?
Spoiler anzeigen
[autoit]
_GDIPlus_Startup ()
$screen = _ScreenCapture_Capture("")
$bitmap = _GDIPlus_BitmapCreateFromHBITMAP($screen)
dllcall("bitmap.dll", "str", "pixel@4", "???", $bitmap)
[/autoit]Code
#Include "win/GdiPlus.bi"
Using gdiplus
declare function pixel Lib "bitmap" Alias "pixel" (hBitmap as ???) as any ptr
Dim shared buffer as string
function pixel(hBitmap as ???) as any ptr Export
Dim AS GdiplusStartupInput gdipsi
Dim AS ULong_Ptr gdipToken
GdiplusStartup( @gdipToken, @gdipsi, NULL )
buffer = Hex(GdipBitmapGetPixel(hBitmap, 0, 0, NULL), 6)
return buffer
End Function
Alles anzeigen