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.
Your company probably relies on audio more than you realize. Whether you’re creating a spoken text message to a colleague or giving a speech, you want your audio to shine. Otherwise, you could cause avoidable friction points and potentially hurt your brand reputation. For example, let’s say you create a