Results 1 to 4 of 4

Thread: VarArrayCreate([0,x],varInt64) is foei?

  1. #1
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?½
    Posts
    889

    VarArrayCreate([0,x],varInt64) is foei?

    Wat is dit vreemd! Ik had iets waarbij hij 'intelligent' beslist welk variant type hij kiest bij een VarArrayCreate call (mocht het je interesseren: hier).
    En vandaag krijg ik vrolijk een EVariantArrayCreateError op mijn bord. Blijkt hij varInt64 niet toe te laten, in VarUtils.pas blijkt er een CVarTypeToElementInfo te staan, en daar staat ValidBase: False. Vreemd.

    Wat daar het verschil is tussen ValidBase en ValidElement, en waarom VarArrayCreate VarTypeIsValidArrayType gebruikt en niet VarTypeIsValidElementType, is me ook niet duidelijk. Waarom varUInt64 (die bij CMaxArrayVarType daarboven nog varWord64 wordt geheten!) dan weer beide false is me ook een raadsel.

    Bij SafeArrayCreate staat inderdaad dat niet zomaar alles mag; array, byref en empty lijken me vanzelfsprekend, maar: "All other types are legal." dus int64's toch wel?

    Vreemd. Iemand een idee? Ik ga voorlopig gewoon dit doen en dan kan ik al verder:
    Delphi Code:
    1. if not(VarTypeIsValidArrayType(at)) then at:=varVariant;

  2. #2
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    9,571
    int64 is volgens mij geen historisch COM type.

    Zie b.v. https://blogs.msdn.microsoft.com/mat...nt64-variable/

  3. #3
    Stijn Sanders develyoy's Avatar
    Join Date
    Jun 2008
    Location
    GentBrugge, Belgi?½
    Posts
    889
    hihi: 32 bits should be enough for everyone ...

  4. #4
    Senior Member Thaddy's Avatar
    Join Date
    Dec 2004
    Location
    Amsterdam
    Posts
    2,171
    Quote Originally Posted by develyoy View Post
    hihi: 32 bits should be enough for everyone ...
    Jawel.
    Net zoals "All other legacy types are legal."
    Nou mag je alle documentatie nog even updaten naar 512 bit. Waar je video kaart mee werkt, Want je CPU is alleen om te booten, toch?. (Behalve bij de Rasperry Pi, waar de video kaart de boot doet en dan de CPU aan je beschikbaar stelt )
    Maar dat is ook wel weer logisch want de videocore is 32 bit en de cpu's 64 bit (RPi3). toch?

    Marco heeft trouwens gelijk: COM kent officieel geen 64 bit type in de specificatie. Signed of unsigned.
    Last edited by Thaddy; 09-Jul-16 at 18:08.
    Werken aan Ansi support voor Windows is verspilde tijd, behalve voor historici.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •