2012-09-28 3 views
0

나는 C++로 작성된 코드를 가지고 있으며 Windows 응용 프로그램입니다. 그 윈도우 응용 프로그램의 일부 기능 호출에 "수신"합니다C++ 함수 호출 수신기

-

난 (오히려 C#을 C# 또는 C++를) 같이 코드를 떠나 다른 프로젝트를 생성하고 싶습니다.

어디서부터 시작해야할지 모르겠다. dll 일 수도 있고 실행 가능해야하거나 리스너를 연결하는 방법 일 수도있다.

답변

0

관리 모드에서 C++ 라이브러리를 컴파일하면 .dll을 C# 프로젝트에 사용할 수 있습니다.

0

WinAPI를 사용하여 다른 응용 프로그램에 연결할 수 있으므로 프로그램이 DLL 일 필요는 없지만 함수 호출 등에 대한 수신 대기는 허용되지 않습니다. 당신이 후킹 중 하나에서 캡처 할 수있는 원래의 과정에서 "signaller"의 일종을 가지고 ...

이 사건을 볼 때 이것은 논리적이다 : 컴파일러는 최적화 등으로 인해 때때로 대체된다. 그들의 맨손으로 전문화 된 인라인 기능; 따라서 분기가 완전히 제거됩니다. 이제이 경우 분기가 발생했는지 어떻게 알 수 있습니까? ...

후킹 대신 디자인 패턴을 변경할 수 있습니다. 프로젝트를 변경할 수도 있습니다 (물론 가능하다면). 그들에게 두 개의 프로세스가 서로 메시징되도록하십시오. 이것은 API 등을 사용하여 수행 할 수 있습니다. 이는 프로그램 OS를 특정하게 만듭니다. 그러나 이것은 응용 프로그램의 주요 부분을 완전히 다시 작성하는 것과 같습니다.

+0

정보 주셔서 감사합니다! 원래 애플리케이션이 고객에게 이미 전달 되었기 때문에 원래 애플리케이션을 변경할 수 없습니다. 그것없이 할 수있는 방법을 찾아야합니다. – eddyuk