Just nu i M3-nätverket
Jump to content

Byte-array to string


Jonas Bergström

Recommended Posts

Jonas Bergström

Håller på att skapa ett program för att konvertera inlästa byte-arrays till strängar. dock har jag problem med att få det snabbt. finns det någon inbyggd API-funktion för detta?

en fråga till:

 

Med hjälp av api-viewern i vb kan man ju kolla vilka funktioner som finns i Win32api. Men jag skulle vilja veta alla funktioner som finns med i kernel32. finns det nån lista tillgänglig? annars finns det nån bra länk på nätet om api-programmering som förklarar mer hur det funkar än syntaxen?

Link to comment
Share on other sites

Glenn Larsson

Se Dan Applemans bok

"VB guide to the Win32 API" eller nåt (CD'n som följer med innehåller bra exempel.)

 

Tycker att den är sjyst, men ändå lite "uppe i rymden".

 

Sedan finns det dokumenterade funktioner av varierande kvalitet på diverse vb siter.

 

MS kanske borde skriva en mera human Win32 API dokumentation, och inte bara låsa sig på C++, det finns mumbo-jumbo språk i de djupaste djunglar som är lättare att förstå än vissa APi calls :o)

Link to comment
Share on other sites

Det finns två olika sätt, det enklaste är...

 

Dim sValue As String 'sträng som skall innehålla infon

Dim bArray() As Byte 'byte array som innehåller din data

 

sValue = StrConv(bArray(), vbUnicode)

 

 

Eller så kan man använda CopyMem API med kod som...

 

sValue = Space$(UBound(bArray) - LBound(bArray) + 1)

CopyMem(ByVal sValue, bArray(LBound(bArray)), Len(sValue))

 

 

Deklarationen för CopyMem är...

 

Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" ( _

lpvDest As Any, lpvSource As Any, ByVal cbCopy As Long)

 

 

Dock så är väl det absolut snabbaste sättet att göra detta att direkt

ändra den pekare som strängen sValue pekar till, men det gör det

kanske komplexare än vad som är nödvändigt.

 

Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.



×
×
  • Create New...