Announcement

Collapse
No announcement yet.

VB6 Projekt in VB.NET neu schreiben

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • VB6 Projekt in VB.NET neu schreiben

    Hallo Leute
    Ich schreibe gerade ein VB6 Programm in VB.NET neu.
    Ich habe da allerdings ein Problem.
    Ich habe Folgenden API Aufruf:
    Code:
    Private Declare Sub CopyMemory Lib "kernel32" Alias "RtlMoveMemory" (ByVal _
      Destination As Integer, ByVal Source As Integer, ByVal Length As Integer)
    Hier wird er verwendet:
    Code:
    CopyMemory(VarPtr(mMyArea), MyAreaPtr, Len(mMyArea))
    Die Function "VarPtr" gibt es ja in .NET nicht mehr.
    Dazu habe ich folgendes im Netz gefunden:
    Code:
    Public Function VarPtr(ByVal e As Object) As Integer
        Dim GC As GCHandle = GCHandle.Alloc(e, GCHandleType.Pinned)
        Dim GC2 As Integer = GC.AddrOfPinnedObject.ToInt32
        GC.Free()
        Return GC2
    End Function
    Jetzt bekomme ich folgenden Fehler, sobald die Funktion "VarPtr" aufgerufen wird:

    Das Objekt enthält keine primitiven Daten.
    der Fehler tritt in folgender Zeile auf:
    Code:
    Dim GC As GCHandle = GCHandle.Alloc(e, GCHandleType.Pinned)
    Bin schon langsam am verzweifeln

    MfG
    Steve
    Die Sonne geht auf - Die Sonne geht unter - ich bin wieder drauf, doch irgendwann komm ich runter

  • #2
    Hallo,

    API-Aufrufe - in .net P/Invoke genannt - können mit http://www.pinvoke.net/ ermittelt werden.

    Für dein Problem: http://www.pinvoke.net/default.aspx/...opyMemory.html

    mfG Gü
    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand". - Martin Fowler

    Comment

    Working...
    X