none
Alten VB6 Code>GetMem2 / PutMem2 RRS feed

  • Frage

  • Hi zusammen, ich muß einen alten VB6 Code jetzt in VB.Net umsetzen.
    Es werden Daten über TCP/IP ausgelesen und mit dem Code unten irgendwie Convertiert.
    Könnt ihr mir da weiterhelfen?
    Gruss

    Private Declare Sub GetMem2 Lib "msvbvm60.dll" (ByVal Address As Long, ByRef Value As Long)
    Private Declare Sub PutMem2 Lib "msvbvm60.dll" (ByVal Address As Long, ByRef Value As Long)


    Public Property Get LCh(ByRef Text As String) As Long
        GetMem2 StrPtr(Text), LCh
    End Property

    Public Property Let LCh(ByRef Text As String, ByVal NewValue As Long)
        PutMem2 StrPtr(Text), NewValue
    End Property

    Public Property Get RCh(ByRef Text As String) As Long
        GetMem2 StrPtr(Text) + LenB(Text) - 2, RCh
    End Property

    Public Property Let RCh(ByRef Text As String, ByVal NewValue As Long)
        PutMem2 StrPtr(Text) + LenB(Text) - 2, NewValue
    End Property

    Public Property Get MCh(ByRef Text As String, ByVal Position As Long) As Long
        GetMem2 StrPtr(Text) + ((Position - 1) * 2), MCh
    End Property

    Public Property Let MCh(ByRef Text As String, ByVal Position As Long, ByVal NewValue As Long)
        PutMem2 StrPtr(Text) + ((Position - 1) * 2), NewValue
    End Property

    Mittwoch, 28. März 2012 18:08

Antworten

  • Hallo,

    den Code kannst Du vergessen. Unter .NET sind Strings unveränderbar, so dass solche "Tricks" nicht funktionieren.

    Vermutlich ist die einfachste Lösung einen StringBuilder an entsprechender Stelle einzubauen.

    Mehr könnte man nur sagen, wenn man den Kontext kennen würde, in dem die Funktionen verwendet werden.

    Gruß Elmar

    Donnerstag, 29. März 2012 08:07
    Beantworter

Alle Antworten