Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Hur får jag en Pointer till en sträng?

Postades av 2001-10-19 23:27:00 - Jonas Lundström, i forum visual basic - allmänt, Tråden har 4 Kommentarer och lästs av 452 personer

Det är så att jag kallar på ett API kommando som ger tillbaka en pointer till en char-array (ifrån C/C++)..

Är det någon som vet hur jag får den från en adress till en vb-sträng?

Jag lyckas inte få det att funka..

MVH
//Jonas


Svara

Sv: Hur får jag en Pointer till en sträng?

Postades av 2001-10-20 02:07:00 - Pelle Johansson

Internet är en bra kunskapskälla ;-)

http://www.vbexplorer.com/files/APITUTOR.htm

/pelle


Svara

Sv: Hur får jag en Pointer till en sträng?

Postades av 2001-10-20 18:58:00 - Thomas Andersson

Du skulle kunna göra såhär..

Public Declare Sub CopyMem Lib "kernel32" Alias "RtlMoveMemory" (Destination As Any, Source As Any, ByVal Length As Long)

Function StringFromPointer(Pointer As Long, Length As Long) As String

Dim Bytes() As Byte

ReDim Bytes(0 To Length-1)
Call CopyMem(Bytes(0), ByVal Pointer, Length)
StringFromPointer = StrConv(Bytes(), vbUnicode)

End Function

Busenkelt. ;)

Notera att du behöver längden av strängen för detta att fungera. Om du saknar längden måste du kopiera byte-för-byte tills dess att du hittar ett tecken med ASCII värde 0 (C++/C strängar slutar alltid med ASCII värde 0).


Svara

Sv: Hur får jag en Pointer till en sträng?

Postades av 2001-10-21 17:06:00 - Niklas Jansson

Tänkte bara vara en besserwisser lite...

En C/C++-sträng är ett felaktigt uttryck. En null-terminerad tecken-array är en C-sträng. En objekt av klassen string är en C++-sträng.

Båda existerar i C++, men är olika saker. (Fast man i regel implementerar C++-strängar med C-strängar)

/Niklas Jansson


Svara

Sv: Hur får jag en Pointer till en sträng?

Postades av 2001-10-22 09:05:00 - Jonas Lundström

<hmm> en liten detalj.. Jag har inte den blekaste om hur lång char-array:n är... och att använda CopyMemory är något jag redan har gjort.. Men då genom att fylla en typ String (i vb) med 4096 tecken och sen läsa in så många tecken och sedan leta efter chr(0). Men det jobbiga är om man får en sträng som är längre en 4096 byte (inte så jätte troligt, men kan hända) så funkar det inte..

Men jag löste det genom att göra såhär:

Public Declare Function lstrcpy Lib "kernel32" Alias "lstrcpyA" (ByVal lpString1 As String, ByVal lpString2 As String) As Long
Public Declare Function lstrlen Lib "kernel32" Alias "lstrlenA" (ByVal lpString As String) As Long


Public Function StringFromPointer(ByVal lPointer As Long) As String
Dim sTemp As String
Dim lRetVal As Long

'create the buffer
sTemp = String$(lstrlen(ByVal lPointer), 0)

'copy the string into memory
lRetVal = lstrcpy(ByVal sTemp, ByVal lPointer)

'if value exist the return value
If lRetVal Then StringFromPointer = sTemp
End Function

Tack iaf!
MVH
//Jonas


Svara

Nyligen

  • 14:24 CBD regelbundet?
  • 14:23 CBD regelbundet?
  • 14:22 Har du märkt några verkliga fördel
  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 627
27 953
271 710
886
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies