Jax, look at this StackOverflow question. It should be able to do exactly what you need. To keep things simple, look specifically at the comment that says to use Dumpbin.exe /exports
. That will probably be the easiest way to do it. If you absolutely need to do it programmically, look at this Stackoverflow Question instead.
Using the Dumpbin method, you could do something like this:
// The name of the DLL to output exports from
const string dllName = @"C:\Windows\System32\Wdi.dll";
string output = string.Empty;
var info = new ProcessStartInfo();
var process = new Process();
info.CreateNoWindow = true;
info.RedirectStandardOutput = true;
info.UseShellExecute = false;
info.EnvironmentVariables.Remove("Path");
// DumpBin requires a path to IDE
info.EnvironmentVariables.Add("Path", Environment.GetEnvironmentVariable("Path") + @";c:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\");
// Your path might be different below.
info.FileName = @"c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\dumpbin.exe";
info.Arguments = string.Format("/exports \"{0}\"", dllName);
process.OutputDataReceived += (senderObject, args) => output = output + args.Data;
process.StartInfo = info;
process.Start();
process.BeginOutputReadLine();
process.WaitForExit();
// output now contains the output