Avatar billede sovsekoder Nybegynder
04. november 2004 - 14:49 Der er 1 løsning

Jeg har problemer med et safe array jeg får fra et COM object

type jeg modtager kan ikke uden videre konverteres til byte[].

Når jeg siger get type på det jeg får tilbage siger den:

System.Byte

  • og hvad er det?? et normalt byte array hedder bare: System.Byte[]
    Avatar billede sovsekoder Nybegynder
    05. november 2004 - 20:42 #1
    det viser sig at når man overfører en VARIANT via COM, og sætter lower bound til noget andet en 0, så kommer denne stjerne:

    System.Byte

  • Hvis lower bound er 0, bliver det til:

    System.Byte[]

    i det sidste tilfælde kan man konvertere direkte til et byte-array (byte[]). Men i det første tilfælde er man nødt til at gøre noget i denne stil:
    Array variantArray = ComObject.PropertyThatReturnVariant;
    byte[] myByteArray = new byte[variantArray.Length];
    int i=0;
    foreach(byte b in byteArray)
    {
      myByteArray[i] = b;
      i++;
    }
    Avatar billede Ny bruger Nybegynder

    Din løsning...

    Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

    Loading billede Opret Preview
    Kategori
    IT-kurser om Microsoft 365, sikkerhed, personlig vækst, udvikling, digital markedsføring, grafisk design, SAP og forretningsanalyse.

    Log ind eller opret profil

    Hov!

    For at kunne deltage på Computerworld Eksperten skal du være logget ind.

    Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

    Du kan også logge ind via nedenstående tjenester