Announcement

Collapse
No announcement yet.

VirtualBox - TakeScreenShotToArray - TypeMissmatch

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VirtualBox - TakeScreenShotToArray - TypeMissmatch

    Hallo,

    Beim Versuch die Funktion TakeScreenShotToArray

    octet[] IDisplay::takeScreenShotToArray(
    [in] unsigned long screenId,
    [in] unsigned long width,
    [in] unsigned long height)
    screenId Monitor to take screenshot from.
    width Desired image width.
    height Desired image height.
    Takes a guest screen shot of the requested size and returns it as an array of bytes in
    uncompressed 32-bit RGBA format. A pixel consists of 4 bytes in order: R, G, B, 0xFF.
    aufzurufen, ergibt sich für mich folgendes Problem:

    Ich lese aus o.g. Funktionsbeschreibung, dass die Funktion als Rückgabewert ein Byte() Array mit fest definierter Größe zurückliefert (SafeArray).

    Leider bekomme ich wenn ich den Funktionsaufruf folgendermaßen implementiere:

    Code:
        Dim data1() As Byte
            
    
            Try
                data1 = display.TakeScreenShotToArray(0, breite, hoehe)
            Catch ex As Exception
                Console.WriteLine(ex.Message)
            End Try
    eine exception:
    Specified array was not of the expected type.
    'System.Runtime.InteropServices.SafeArrayTypeMisma tchException'
    Ich weiss langsam echt nicht weiter

    Aus dem Sourcode der VirtualBox API hab ich herauslesen könnten das es sich bei dem o.g. Array octet[] um ein SafeArray handeln muss. Nun widersprechen sich allerdings die Aussagen in diversen Foren... Ein VB.net Array ist IMMER ein SafeARray... bzw. ist es nicht... was ist nun richtig und wer könnte mir einen kleinen Denkanstoß geben?

    Gruß Kai B.
Working...
X