none
Kopieren von Daten aus nichtverwalteten nach verwalteten Speicher (C#) RRS feed

  • Frage

  • Hallo, ich benötige dringend Eure Hilfe.

    Ich versuche verzweifelt an einen Double-Wert im unmanaged mem zu gelengen von dessen ich den Zeiger habe. Mit der Copy-Funktion Marshal.Copy scheint es nicht zu klappen. Es sollte ein Double-Wert drin stehen. Raus kommt jedoch ein nicht erwarteter Wert wie 2,453589.....E-313 Was mache ich falsch?

    Hier der Code.

    myStruct = new MyStruct();
    // Initialize unmanged memory to hold the struct.
    pnt = Marshal.AllocHGlobal(Marshal.SizeOf(myStruct));
    // Copy the struct to unmanaged memory.
    Marshal.StructureToPtr(myStruct, pnt, false);
    int retVal = AOSystem_DllImports.SetAddr(myStruct);
    // Create a managed array.
    var managedArray = new double[1];
    // Initialize unmanged memory to hold the array.
    int size = Marshal.SizeOf(managedArray[0]) * managedArray.Length;
    // Copy unmanaged data-pointer to managed array
    Marshal.Copy(pnt, managedArray, 0, managedArray.Length);
    // Anzeige
    this.Status.Content = managedArray[0];

    • Verschoben Lisa Zhu Montag, 18. Februar 2013 07:34 not English post
    Freitag, 15. Februar 2013 14:08

Alle Antworten