dll tool allows manual editing of ilasm and lets you choose which methods to export and the export name. Uses inverse Pinvoke, also known as reverse Pinvoke, to make methods in a .net dll accessible from unmanaged languages.
You can write your methods in C#, vb.net or any other .net language. This program modifies the dll, so the functions of your selection can be called from an unmanaged language such as C.