이것은 오늘 두 번째 질문입니다. 용서해주십시오.MFC 대화 상자의 이벤트 처리
스캐너 장치와 통신하기 위해 래퍼 라이브러리를 작성하고 있습니다. 소스 코드는 C++ MFC에 있습니다. C#에서 호출 될 일반 DLL로 변환 중입니다. 그래서 C#에서 DllImport를 사용하여 래퍼 라이브러리를 호출합니다.
이제 MFC 코드가 제공되며 라이브러리는 ActiveX 개체입니다. 적어도 그렇게 생각합니다.
class CDpocx : public CWnd
{
}
내 래퍼 라이브러리에서 나는 CDpocx 인스턴스를 가지며 C# P/Invoke를 통해 호출합니다. 그러나 문제는 입니다. CDpocx도 잡아야하는 몇 가지 이벤트가 발생합니다. 전통적인 애플 리케이션에서, 나는 단지 그것으로 함수를 첨부 할 것이다. 하지만 어떻게 비 MFC 클래스에 이벤트를 첨부 할 것입니다.
나는 같은 것을 보았다 :
BEGIN_EVENTSINK_MAP(CVC60Dlg, CDialog)
//{{AFX_EVENTSINK_MAP(CVC60Dlg)
ON_EVENT(CVC60Dlg, IDC_DPOCXCTRL1, 1 , OnReadyDpocxctrl1, VTS_NONE)
//}}AFX_EVENTSINK_MAP
END_EVENTSINK_MAP()
OnReadyDpocxctrl1이 1 (준비) 이벤트를 처리하는 기능입니다.
비 MFC 클래스에서 simmilar 함수를 어떻게 얻을 수 있습니까?
감사합니다, Maksud
감사합니다. 이것을 시도 할 것이다. 실제로 문제는 C++과 VisualBasic 모두에 대한 드라이버와 샘플 코드가 있다는 것입니다. 비주얼 베이직 버전 (VB6은 VB.NET으로 변환되고 VC# .NET으로 다시 변환 됨)은 예상대로 작동하지 않는 반면 C++ 버전 (VC6는 VC++. NET 2008로 변환 됨)은 완벽하게 작동합니다. 그래서 나는 C#에서 다시 호출 될 C++ 래퍼를 만들려고 유혹을 받았다. 나는 당신의 해결책을 시도 할 것입니다. – max