2013-03-31 4 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

대단히 감사합니다. –