2013-03-31 69 views

回答

2

您可以使用P/Invoke從託管代碼調用非託管代碼。下面是調用非託管puts函數的例子:

using System; 
using System.Runtime.InteropServices; 

class Program 
{ 
    [DllImport("msvcrt.dll")] 
    public static extern int puts([MarshalAs(UnmanagedType.LPStr)] string m); 
    [DllImport("msvcrt.dll")] 
    internal static extern int _flushall(); 

    public static void Main() 
    { 
     puts("Hello World!"); 
     _flushall(); 
    } 
} 

的想法在這裏在於宣佈託管的包裝,將匹配要調用非託管方法的簽名。請注意該方法是如何標記extern關鍵字,並用DllImport屬性進行修飾以指示其實施位置。

+0

那我想要謝謝你Darin Dimitrov –

1

絕對可以!

如果您有一個預先存在的庫@Darin所指的機制可以自動完成。用www.swig.org

+0

非常感謝你 –