컴파일러 오류 C3705
'function': 이벤트 인터페이스를 찾을 수 없습니다.
COM 이벤트를 사용하려면 이벤트 인터페이스를 정의해야 합니다. #include
COM 이벤트를 사용하려면 아래 샘플에 표시된 ATL 헤더 파일의 줄이 필요합니다. 이 오류를 해결하려면 샘플 코드에서 인터페이스 정의의 IEvents
주석 처리를 제거합니다.
다음 샘플에서는 C3705를 생성합니다.
// C3705.cpp
// compile with: /c
#define _ATL_ATTRIBUTES 1
#include <atlbase.h>
#include <atlcom.h>
#include <atlctl.h>
[module(dll, name="idid", uuid="12341234-1234-1234-1234-123412341234")];
// Uncomment the following 4 lines to resolve.
// [object, uuid("00000000-0000-0000-0000-000000000003")]
// __interface IEvents : IUnknown {
// HRESULT event1([in] int i);
// };
[dual, uuid("00000000-0000-0000-0000-000000000001")]
__interface IBase {
HRESULT fireEvents();
};
[coclass, event_source(com), uuid("00000000-0000-0000-0000-000000000002")]
class CEventSrc : public IBase {
public:
__event __interface IEvents; // C3705 uncomment IEvents to resolve
HRESULT fireEvents() {
HRESULT hr = IEvents_event1(123);
return hr;
}
};