2013-03-08 1 views
0

저는 .Net에 익숙하고 이것을 해결하려고하는 벽돌 벽을 치고 있습니다 ... 지난 며칠 동안 충분한 검색을 해본 결과, 애매한 (나를 위해 임대) C# 관련 정보네이티브와 관리되는 C++ 간의 함수 호출 (메서드)

기본적으로, 나는 몇 가지 글로벌 후크를 특정 자동화 프로세스를 수행하도록 설정하려고합니다. 개발 환경은 VS2008 C++ 윈도우 폼이기 때문에 호출하는 prog가 주입 할 네이티브 DLL을 컴파일하여 시작했습니다. NET 프로그램 (또는 어쩌면 래퍼가 관리되는 dll)에서 함수를 호출하는 네이티브 dll에서 콜백 proc에 대한 전략이며 추가 처리를 위해 필터링 된 원시 데이터 (키보드/마우스/WM_create/etc) 메시지를 전달합니다.

질문 : 삽입 된 DLL에 이러한 함수의 핸들을 전달하려면 어떻게합니까?

관리되는 래퍼 dll 경로가 더 쉬운 선택입니까 아니면 기본 응용 프로그램에 관리되는 & 기본 기능이 있습니까?

나는이 문제의 또 다른 어두운 면인 마샬 링 (Marshalling)을 많이해야 할 것이다. 정확한 문서/마샬링 함수의 예에 대한 링크가 있습니까?

미리 도움을 주셔서 감사합니다.
마크

답변

0

프롬프트 응답에 대한 'Marshal.GetFunctionPointerForDelegate'

+0

감사 로키에서보세요. 난 그냥 MSDN에서 그것을 찾았고 내가 곧 테스트하고 그것을 확인한다 포인터를 전달하기위한 오른쪽 것으로 보인다. 그러나 물론 관리되는 섹션에 대한 기본 dll 호출을 마샬링하기 위해 올바른 정보를 확보해야합니다. – Mark

+0

마지막 코멘트는 Loki가 아닌 Paul에서 해결되었습니다 ... 죄송합니다 .... 남자에게 "식사"를 주면 그는 하루 동안 배가 고프지 않을 것입니다. 그에게 어떻게, 어디에서 식사를 할 수 있는지 보여주세요. 그럼에도 불구하고 질문에 부분적으로 대답하지 않더라도 나는 감사한다. – Mark

+0

문제 없습니다. 당신의 질문이 정교한 대답을 줄 정도로 구체적이지 않기 때문에 더 말할 것도 없습니다 ... 배고픈 사람들을 먹이기 위해 더 많은 "식사"가 있다면 다시 물어보십시오 ... –