c# 비 트랜잭션 함수 어떻게 호출 3 - 리셋 함수 실현

3619 단어 콜백 함수
원문: 유 무|c# 비 트랜잭션 함수 어떻게 호출 3 - 리셋 함수 실현
일부 dll 함수는 리셋이 필요합니다. 따라서 트랜잭션 코드에서 호출할 때 리셋 함수를 만들고 이 함수의 바늘을 매개 변수로 dll 함수에 전달해야 합니다.
다음은 EnumWindows 함수의 경우 콜백 함수를 사용하는 방법을 보여 줍니다.
함수 서명 찾기
EnumWindows는 다음과 같은 서명을 가지고 있다. BOOL Enum Windows(WNDEnUMPROC lpEnum Func, LPARAM lParam).
그 중에서 lpEnumFunc는 응용 프로그램이 정의한 리셋 함수의 지침이다. BOOL CALLBACK Enum Windows Proc(HWND hwnd, LPARAM lParam).
2 트랜잭션 리셋 함수 만들기
public delegate bool CallBack (int hwnd, int lParam) 와 같은 리셋 함수를 위임 형식으로 정의할 수 있습니다.
셋째, 위임을 생성하여 EnumWindows 함수에 매개 변수로 전달
플랫폼 호출은 자동으로 의뢰를 일반적인 리셋 형식으로 변환합니다.예:
C#-Code:
public delegate bool CallBack(int hwnd, int lParam); 


public class EnumReportApp {


    [DllImport("user32")]
    public static extern int EnumWindows(CallBack x, int y);


    public static void Main()
    {
        CallBack myCallBack = new CallBack(EnumReportApp.Report);
        EnumWindows(myCallBack, 0);
    }


   public static bool Report(int hwnd, int lParam) {
        Console.Write("Window handle is ");
        Console.WriteLine(hwnd);
        return true;
    }
}


참조:





좋은 웹페이지 즐겨찾기