c# 비 트랜잭션 함수 어떻게 호출 3 - 리셋 함수 실현
3619 단어 콜백 함수
일부 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;
}
}
참조:
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
콜백 함수2020년 6월 13일 Progate Lv.87 자바스크립트 Ⅶ JavaScript에서는, 인수에 함수를 건네줄 수가 있어, 인수에 건네지는 함수를 콜백 함수라고 한다. 함수의 호출시에 건네지는 함수의 종류에는, 캐...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.