2012-12-13 2 views
1

나는 COM 개체를 Delphi XE2에서 만들고 있습니다. safecall을 사용하여 메서드를 만들려고 시도하지만 기본값은 stdcall입니다.COM 개체와 자동화 개체

자동화 개체를 사용할 때 safecall을 사용할 수 있습니다.

성능 질문에 대해서는 COM 개체를 사용하고 있습니다. 그것에 safecall을 사용할 수 있습니까?

감사

답변

3

예, safecall 규칙을 사용할 수 있습니다. safecallstdcall 사이의 유일한 차이점은 safecall이 예외 구동 흐름에 적합하다는 것입니다. 즉, 델파이 함수가 safecall이면 예외가 발생하여 내부적으로 캐치되어 적절한 HRESULT로 변환됩니다.

그런데 COM 개체 대 자동화 개체의 성능상의 이점은 없습니다. 자동화 개체가 IDispatch 인터페이스를 통해 느린 "late binding"을 지원하지만 해당 클라이언트는이 개체를 사용할 의무가 없습니다. "초기 바인딩"을 사용할 수있는 클라이언트는 자동화 개체에서도 사용할 수 있습니다.

+1

http://support.microsoft.com/kb/245115/en-us –

+1

@ PedroMagalhaes 정확히이 스레드를 찾고있는 것이 었습니다. "자동화 개체"가 무엇인지 확신 할 수 없었습니다. – vmrob