You can use Visual C# to create DLLs that are callable by other managed applications and by unmanaged code.
Shows how to create class library projects in Visual C#.
Describes the /baseaddress compiler option which lets you specify the preferred base address at which to load a DLL.
Explains how wrapping a frequently used DLL function in a managed class is an effective approach to encapsulate platform functionality.
Lists reasons why breakpoints might not work as expected in DLLs and solutions or workarounds for each case.
Provides information about how to debug DLL projects.
Provides links to topics that explain features in C#.