为解决类似情况,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