The StructLayout Attribute

An important aspect of unmanaged programming is how you handle types, especially when such types are passed as P/Invoke arguments. Differently from P/Invokes, types representing counterparts from the Windows API pass through the Common Language Runtime and, as a general rule, you should provide the CLR the best way for handling them to keep performance high. Basically when you write a class or a structure, you give members a particular order that should have a meaning for you. In other words, if the Person class exposes FirstName and Age as properties, keeping this order should have a reason, which generally is dictated only by some kind of logic. With the System.Runtime.InteropServices.StructLayout attribute, you can ...

Get Visual Basic® 2010 Unleashed now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.