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


Läsa en sträng från en C++ dll

Postades av 2002-09-19 08:03:35 - Urban Josefsson, i forum visual basic - allmänt, Tråden har 3 Kommentarer och lästs av 384 personer

Jag har en referens till en dll som är skriven i C++. Denna returnerar pekaren till en sträng. Jag använder API'et 'RtlMoveMemory' för detta.
Nu till mitt problem. Jag får inte tillbaka hela strängen utan bara en del av den. Är det någon som vet (eller har ngn idé) vad jag gör för fel.

//UJ

<code>
Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (dest As _
Any, source As Any, ByVal bytes As Long)


Function StringFromBSTR(ByVal pointer As Long) As String
Dim temp As String
' copy the pointer into the temporary string's BSTR
CopyMemory ByVal VarPtr(temp), pointer, 8
' now Temp points to the original string, so we can copy it
StringFromBSTR = temp
' manually clear then temporary string to avoid GPFs
CopyMemory ByVal VarPtr(temp), 0&, 8
End Function
</code>


Svara

Sv: Läsa en sträng från en C++ dll

Postades av 2002-09-19 09:00:51 - Sven Åke Persson

Hej
>CopyMemory ByVal VarPtr(temp), 0&, 8

Du skriver 8 i antal bytes , Du skall skicka Len(temp)

CopyMemory ByVal VarPtr(temp), 0&, Len(temp)

mvh
Sven


Svara

Sv: Läsa en sträng från en C++ dll

Postades av 2002-09-19 10:24:54 - Andreas Hillqvist

Har ingen C++ pekare att testa med. Men kanske funkar:
<code>
Option Explicit

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

Function StringFromBSTR(ByVal Pointer As Long) As String
Dim Length As Long
Dim Buffer As String
Length = lstrlen(ByVal Pointer)
If Length >0 Then
Buffer = String(Length, 0)
lstrcpy ByVal Buffer, ByVal Pointer
StringFromBSTR = Buffer
End If
End Function


Svara

Sv: Läsa en sträng från en C++ dll

Postades av 2002-09-19 13:24:05 - Urban Josefsson

Hej. Tack för svaren, jag har dock fortsatt huvudbry :-|

SvenPon
>CopyMemory ByVal VarPtr(temp), 0&, Len(temp)
Problemet är ju att Len(temp)=0 eftersom det är tom sträng. Har du ngn annan bra idé så är jag evigt tacksam.


Andreas Hillqvist
Length = lstrlen(ByVal Pointer) returnerar alltid 1. Finns det ngt annat API anrop som kan fungera?

//UJ


Svara

Nyligen

  • 17:03 Getmancar your go-to carsharing
  • 14:07 Games
  • 17:54 Vegastars New Zealand
  • 16:56 Verde Casino Danmark
  • 13:54 Vegastars: Top Australian Online C
  • 21:28 Chicken Road Casino Game
  • 21:21 1xBet Promo Code 2025
  • 18:37 Remove the bumper in AUDI

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 570 984
27 965
271 785
738
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