/ Forside / Teknologi / Udvikling / VB/Basic / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
VB/Basic
#NavnPoint
berpox 2425
pete 1435
CADmageren 1251
gibson 1230
Phylock 887
gandalf 836
AntonV 790
strarup 750
Benjamin... 700
10  tom.kise 610
*buffer ?
Fra : Lasse Madsen


Dato : 25-08-04 22:57

Hej...

Jeg har en activeX komponent kaldet XE denne har en funktion som følger:

XE.Write (buffer as Byte, count as Long) as Long

jeg har prøvet følgende...

dim buffer as string
buffer = "Hej med dig dette er en streng"

XE.Write (buffer),len(buffer)

så får jeg en runtime fejl 13 ... der syntes at fortælle mig at buffer ikke
er en byte

prøver jeg med:

dim buf as byte
buf=&H64
XE.Write buf,1

fungere det fint ...

Kan det passe at man skal lave et array af bytes og kopiere sin string ind i
og derefter via en løkke sende det til sin komponent
det lyder noget tungnemt og i og med at der er lavet en count as long
operator syntes da også at tyde på at der er mulighed for at sende en streng
osv. videre...

Nogen ideer ...

M.v.h.
Lasse Madsen



 
 
Lars Holm Jensen (25-08-2004)
Kommentar
Fra : Lars Holm Jensen


Dato : 25-08-04 23:18

> XE.Write (buffer as Byte, count as Long) as Long
> jeg har prøvet følgende...
> dim buffer as string
> buffer = "Hej med dig dette er en streng"
> XE.Write (buffer),len(buffer)
> så får jeg en runtime fejl 13 ... der syntes at fortælle mig at buffer
> ikke
> er en byte
> prøver jeg med:
> dim buf as byte
> buf=&H64
> XE.Write buf,1
> fungere det fint ...
> Kan det passe at man skal lave et array af bytes og kopiere sin string ind
> i
> og derefter via en løkke sende det til sin komponent
> det lyder noget tungnemt og i og med at der er lavet en count as long
> operator syntes da også at tyde på at der er mulighed for at sende en
> streng
> osv. videre...

Det lyder som om at funktionen forventer et Byte Array..
Prøv at gemme din streng i et byte array, det gøres let sådan her:

Dim mybytes() As Byte
mybytes = StrConv(streng, vbFromUnicode)

Og så kald XE.Write sådan her:

XE.Write mybytes(0), UBound(mybytes)

Hvis ikke det virker må du sikkert kalde den byte for byte som du selv
foreslog..

For indx = 0 to UBound(mybytes)
XE.Write mybytes(indx),1
Next indx

/Lars



Lars Holm Jensen (25-08-2004)
Kommentar
Fra : Lars Holm Jensen


Dato : 25-08-04 23:22

> Dim mybytes() As Byte
> mybytes = StrConv(streng, vbFromUnicode)
>
> Og så kald XE.Write sådan her:
>
> XE.Write mybytes(0), UBound(mybytes)

Hov.. Det er muligt, at du skal gemme UBound(mybytes) i en Long..

Dim mylen As Long
mylen = UBound(mybytes)

og så kald funktionen..

XE.Write mybytes(0), mylen



Lasse Madsen (25-08-2004)
Kommentar
Fra : Lasse Madsen


Dato : 25-08-04 23:32

Hej Lars

Det virker perfekt (din første løsning) !

Tusinde tak.

M.v.h.
Lasse



Søg
Reklame
Statistik
Spørgsmål : 177580
Tips : 31968
Nyheder : 719565
Indlæg : 6409079
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste