Skip to content
  • Categories
  • Recent
  • Tags
  • Popular
  • World
  • Users
  • Groups
Skins
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
Code Project
CODE PROJECT For Those Who Code
  • Home
  • Articles
  • FAQ
Community
  1. Home
  2. General Programming
  3. C#
  4. Marshalling

Marshalling

Scheduled Pinned Locked Moved C#
question
3 Posts 3 Posters 0 Views 1 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • 3 Offline
    3 Offline
    3bood ghzawi
    wrote on last edited by
    #1

    Hi all, i asking about marshalling, what it is means, and why we need it??? I face this statment at some code, but i don't know exactly what it means ..; < // Marshal pointer into a struct PcapUnmanagedStructures.pcap_if pcap_if_unmanaged = (PcapUnmanagedStructures.pcap_if)Marshal.PtrToStructure(nextDevPtr, typeof(PcapUnmanagedStructures.pcap_if)); >

    D 1 Reply Last reply
    0
    • 3 3bood ghzawi

      Hi all, i asking about marshalling, what it is means, and why we need it??? I face this statment at some code, but i don't know exactly what it means ..; < // Marshal pointer into a struct PcapUnmanagedStructures.pcap_if pcap_if_unmanaged = (PcapUnmanagedStructures.pcap_if)Marshal.PtrToStructure(nextDevPtr, typeof(PcapUnmanagedStructures.pcap_if)); >

      D Offline
      D Offline
      DaveyM69
      wrote on last edited by
      #2

      I'm no expert so this is a rough overview. I'm sure Luc will be along soon to offer a much better description! Marshalling is data transformation. Things in the managed world are different from the unmanaged world and marshalling takes care of transforming the data so we can pass it between the two worlds. Unmanaged code often uses pointers to pass the references to values rather than the values themselves. These pointers are marshalled back to managed code to an IntPtr. To get the actual value pointed to, we can use the Marshal class to transform the data at the given reference to a structure as in your example.

      Dave
      BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
      Why are you using VB6? Do you hate yourself? (Christian Graus)

      L 1 Reply Last reply
      0
      • D DaveyM69

        I'm no expert so this is a rough overview. I'm sure Luc will be along soon to offer a much better description! Marshalling is data transformation. Things in the managed world are different from the unmanaged world and marshalling takes care of transforming the data so we can pass it between the two worlds. Unmanaged code often uses pointers to pass the references to values rather than the values themselves. These pointers are marshalled back to managed code to an IntPtr. To get the actual value pointed to, we can use the Marshal class to transform the data at the given reference to a structure as in your example.

        Dave
        BTW, in software, hope and pray is not a viable strategy. (Luc Pattyn)
        Why are you using VB6? Do you hate yourself? (Christian Graus)

        L Offline
        L Offline
        Luc Pattyn
        wrote on last edited by
        #3

        That is just fine, no way to improve on it. ;)

        Luc Pattyn [Forum Guidelines] [Why QA sucks] [My Articles]


        I only read code that is properly formatted, adding PRE tags is the easiest way to obtain that.
        [The QA section does it automatically now, I hope we soon get it on regular forums as well]


        1 Reply Last reply
        0
        Reply
        • Reply as topic
        Log in to reply
        • Oldest to Newest
        • Newest to Oldest
        • Most Votes


        • Login

        • Don't have an account? Register

        • Login or register to search.
        • First post
          Last post
        0
        • Categories
        • Recent
        • Tags
        • Popular
        • World
        • Users
        • Groups