IUnknown
인터페이스를 구현하는 클래스를 만들려고합니다. 내가 관련 uuid.lib
여러 다른 사람을 포함했다IUnknown, 해결되지 않은 외부 기호 구현
#pragma once
#include "stdafx.h"
#include "Unknwn.h"
class Vmr9Presenter : IVMRImagePresenter9, IVMRSurfaceAllocator9
{
public:
Vmr9Presenter(void);
HRESULT Initialize(void);
~Vmr9Presenter(void);
STDMETHODIMP QueryInterface(const IID &riid, void **ppvObject);
};
: 나는 헤더 파일에 다음 코드를 가지고있다. 내가 컴파일 할 때 그러나, 나는 오류 얻을 :.이 뭔가 당겨지고되지 않는다는 것을 믿고 날 리드
Error 2 error LNK2001: unresolved external symbol "public: virtual long __stdcall Vmr9Presenter::QueryInterface(struct _GUID const &,void * *)" ([email protected]@@[email protected]@[email protected]) Vmr9Presenter.obj VmrPresenter
을이 오류를 제거하는 방법에 대한 어떤 제안?
당신의 설명이 완벽합니다. 그러나 게시 한 코드에서 static_cast (this)은 모호한 참조로 컴파일러에서 플래그가 지정됩니다. IVMRSurfaceAllocator9와 IVMRImagePresenter9가 모두 IUnknown에서 파생 되었기 때문에 이것을 가정합니다. 그러나이 캐스트는 작동하는 것으로 보입니다. static_cast (static_cast (static_cast (이))) 내가 컴파일러 자체에의 IUnknown의 어떤 구현을 사용하도록 선택할 수 있기 때문입니다 겠지? 아니면 내가 완전히 기지에서 벗어나서 이것이 내가하는 일을하지 않을 것인가? –
Alex
당신은 완전히 옳다, 나는 게으르다. 미안해.귀하의 솔루션은 정확합니다. –