Browse DevX
Sign up for e-mail newsletters from DevX


Dealing with DllImport

Learning to program in .NET offers developers new opportunities for frustration. For example, calling specific Win32 APIs in .NET using the DllImport is not as straightforward as it initially seems. Protect yourself against future setbacks when using the DllImport by learning these simple principles now.

Part 1: Although the .NET framework encapsulates a large portion of the Win32 API, it's sometimes still necessary to call the API from your managed code using the DllImport attribute—and that can get complicated. In Part 1 of this two-part series, Martin Heller explores how to use the DllImport attribute to declare external unmanaged functions in both C# and VB.NET.

Part 2: For simple data types, the DllImport attribute works seamlessly to let your managed programs interoperate with unmanaged code, but when you need to pass structures or change data layouts, you'll have to delve more deeply into the DllImport attribute's options. In the second half of this two-part series, Martin Heller shows you how to use the MarshalAs and StructLayout options to control precisely how the runtime passes data to and from unmanaged code.

Martin Heller is a Web and Windows programming consultant, an author, and a Senior Contributing Editor at BYTE.com. His most recent publicly viewable project is PC Pitstop. You can reach Martin at webmail@mheller.com.
Thanks for your registration, follow us on our social networks to keep up-to-date