同様の状況に対処するために、Microsoft は属性、アセンブリ、およびマーシャリングを提供して、マネージ/アンマネージ コード (.net を認識しない/clr 境界外で実行) とマネージ レガシ COM 間の相互運用性を提供します。
ダイナミクスと (動的言語ランタイム - DLR) の使用を調査してください。
マネージド コンテキストからアンマネージド コードを呼び出す例としてのコード例 (kernel32.dll を使用)
[DllImport("kernel32.dll", EntryPoint="MoveFile",
ExactSpelling=false, CharSet=CharSet.Unicode,
SetLastError=true)]
static extern bool MoveFile(string sourceFile, string destinationFile);
//calling the function
static void Main()
{
MoveFile("sheet.xls", @"c:\sheet.xls");
}
この pdf も確認してください: http://www.nag.com/IndustryArticles/Calling_C_Library_DLLs_from_C_Sharp.pdf