July 2015
Intermediate to advanced
1300 pages
87h 27m
English
An important aspect of unmanaged programming is how you handle types, especially when such types are passed as P/Invoke arguments. Unlike P/Invokes, types representing counterparts from the Windows API pass through the CLR and, as a general rule, you should provide the CLR the best way for handling them to keep performance high. 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 is dictated only by some kind of logic. With the System.Runtime.InteropServices.StructLayout attribute, you can tell the CLR how it can handle type members; it ...