Ich habe das Buch gelesen und finde es auch gut.
Ich hatte mir überlegt die TriBase-Engine auch für meine eigene Spiele zu verwenden, weil sie eigentlich die wichtigsten Komponenten enthält. Zumindestens für einfache Games.
Nur wollte ich gerne selber an der Engine weiter entwickeln, wenn ich es für nötig halte und deshalb die Engine in eine andere umwandeln (Namenstechnisch).
Ich habe dazu alle .cpp und .h Files geändert und kompilieren tut er sie auch nur beim Linken kommen eine Menge Fehler, mit denen ich im Moment echt nichts anfangen kann.
Gelinkt habe ich: d3d9.lib d3dx9d.lib dxerr9.lib dxguid.lib
Ich benutzte: VS.NET
Was will ich: Die Engine neu kompilieren
Die Linker Fehler sind:
----------------------
Verknüpfen...
Bibliothek 'Debug/BigScene.lib' und Objekt 'Debug/BigScene.exp' wird erstellt
BigScene.obj : error LNK2019: Nicht aufgelöstes externes Symbol '__imp__timeGetTime@0', verwiesen in Funktion '"enum bsResult __cdecl bsInit(void)" (?bsInit@@YA?AW4bsResult@@XZ)'
bsDirectInput.obj : error LNK2019: Nicht aufgelöstes externes Symbol '__imp__timeGetTime@0', verwiesen in Funktion '"enum bsResult __cdecl InitKeyboard(void)" (?InitKeyboard@@YA?AW4bsResult@@XZ)'
bsGUI.obj : error LNK2001: Nichtaufgelöstes externes Symbol __imp__timeGetTime@0
bsSound.obj : error LNK2019: Nicht aufgelöstes externes Symbol '__imp__timeGetTime@0', verwiesen in Funktion '"struct IDirectSoundBuffer * __cdecl bsLoadWAVFile(struct IDirectSound8 *,class bsVFile *,unsigned long,struct _GUID)" (?bsLoadWAVFile@@YAPAUIDirectSoundBuffer@@PAUIDirectSound8@@PAVbsVFile@@KU_GUID@@@Z)'
bsConfig.obj : error LNK2019: Nicht aufgelöstes externes Symbol '_DirectSoundEnumerateA@8', verwiesen in Funktion '"enum bsResult __cdecl EnumSoundDrivers(struct HWND__ *)" (?EnumSoundDrivers@@YA?AW4bsResult@@PAUHWND__@@@Z)'
bsDirectInput.obj : error LNK2001: Nichtaufgelöstes externes Symbol _c_dfDIKeyboard
bsDirectInput.obj : error LNK2001: Nichtaufgelöstes externes Symbol _c_dfDIMouse2
bsDirectInput.obj : error LNK2001: Nichtaufgelöstes externes Symbol _c_dfDIJoystick
bsDirectInput.obj : error LNK2019: Nicht aufgelöstes externes Symbol '_DirectInput8Create@20', verwiesen in Funktion '"public: static enum bsResult __cdecl bsDirectInput::Init(struct HWND__ *,unsigned long)" (?Init@bsDirectInput@@SA?AW4bsResult@@PAUHWND__@@K@Z)'
bsDirectSound.obj : error LNK2019: Nicht aufgelöstes externes Symbol '_DirectSoundCreate8@12', verwiesen in Funktion '"public: static enum bsResult __cdecl bsDirectSound::Init(struct bsConfig *,struct HWND__ *,unsigned long,int)" (?Init@bsDirectSound@@SA?AW4bsResult@@PAUbsConfig@@PAUHWND__@@KH@Z)'
bsMusic.obj : error LNK2001: Nichtaufgelöstes externes Symbol _TIME_FORMAT_MEDIA_TIME
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol _TIME_FORMAT_MEDIA_TIME
bsMusic.obj : error LNK2001: Nichtaufgelöstes externes Symbol _IID_IBasicAudio
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol _IID_IBasicAudio
bsMusic.obj : error LNK2001: Nichtaufgelöstes externes Symbol _IID_IMediaSeeking
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol _IID_IMediaSeeking
bsMusic.obj : error LNK2001: Nichtaufgelöstes externes Symbol _IID_IMediaControl
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol _IID_IMediaControl
bsMusic.obj : error LNK2001: Nichtaufgelöstes externes Symbol _CLSID_FilterGraph
bsVideo.obj : error LNK2019: Nicht aufgelöstes externes Symbol '_CLSID_FilterGraph', verwiesen in Funktion '__unwindfunclet$??0bsVideoRenderer@@QAE@PAUIUnknown@@PAJ@Z$0'
bsMusic.obj : error LNK2001: Nichtaufgelöstes externes Symbol _IID_IGraphBuilder
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol _IID_IGraphBuilder
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseVideoRenderer:
etSink(struct IQualityControl *)" (?SetSink@CBaseVideoRenderer@@UAGJPAUIQualityControl@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseVideoRenderer::Notify(struct IBaseFilter *,struct tagQuality)" (?Notify@CBaseVideoRenderer@@UAGJPAUIBaseFilter@@UtagQuality@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseVideoRenderer::get_DevSyncOffset(int *)" (?get_DevSyncOffset@CBaseVideoRenderer@@UAGJPAH@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseVideoRenderer::get_AvgSyncOffset(int *)" (?get_AvgSyncOffset@CBaseVideoRenderer@@UAGJPAH@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseVideoRenderer::get_Jitter(int *)" (?get_Jitter@CBaseVideoRenderer@@UAGJPAH@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseVideoRenderer::get_AvgFrameRate(int *)" (?get_AvgFrameRate@CBaseVideoRenderer@@UAGJPAH@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseVideoRenderer::get_FramesDrawn(int *)" (?get_FramesDrawn@CBaseVideoRenderer@@UAGJPAH@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseVideoRenderer::get_FramesDroppedInRenderer(int *)" (?get_FramesDroppedInRenderer@CBaseVideoRenderer@@UAGJPAH@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseFilter::Unregister(void)" (?Unregister@CBaseFilter@@UAGJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseFilter::Register(void)" (?Register@CBaseFilter@@UAGJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseFilter::QueryVendorInfo(unsigned short * *)" (?QueryVendorInfo@CBaseFilter@@UAGJPAPAG@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseVideoRenderer::JoinFilterGraph(struct IFilterGraph *,unsigned short const *)" (?JoinFilterGraph@CBaseVideoRenderer@@UAGJPAUIFilterGraph@@PBG@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseFilter::QueryFilterInfo(struct _FilterInfo *)" (?QueryFilterInfo@CBaseFilter@@UAGJPAU_FilterInfo@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseRenderer::FindPin(unsigned short const *,struct IPin * *)" (?FindPin@CBaseRenderer@@UAGJPBGPAPAUIPin@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseFilter::EnumPins(struct IEnumPins * *)" (?EnumPins@CBaseFilter@@UAGJPAPAUIEnumPins@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseFilter::GetSyncSource(struct IReferenceClock * *)" (?GetSyncSource@CBaseFilter@@UAGJPAPAUIReferenceClock@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseFilter:
etSyncSource(struct IReferenceClock *)" (?SetSyncSource@CBaseFilter@@UAGJPAUIReferenceClock@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseRenderer::GetState(unsigned long,enum _FilterState *)" (?GetState@CBaseRenderer@@UAGJKPAW4_FilterState@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseRenderer::Run(__int64)" (?Run@CBaseRenderer@@UAGJ_J@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseRenderer:
ause(void)" (?Pause@CBaseRenderer@@UAGJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseRenderer:
top(void)" (?Stop@CBaseRenderer@@UAGJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseFilter::GetClassID(struct _GUID *)" (?GetClassID@CBaseFilter@@UAGJPAU_GUID@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseVideoRenderer:
endQuality(__int64,__int64)" (?SendQuality@CBaseVideoRenderer@@UAEJ_J0@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseVideoRenderer::ResetStreamingTimes(void)" (?ResetStreamingTimes@CBaseVideoRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual void __thiscall CBaseVideoRenderer::OnDirectRender(struct IMediaSample *)" (?OnDirectRender@CBaseVideoRenderer@@UAEXPAUIMediaSample@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual void __thiscall CBaseVideoRenderer::RecordFrameLateness(int,int)" (?RecordFrameLateness@CBaseVideoRenderer@@UAEXHH@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::Render(struct IMediaSample *)" (?Render@CBaseRenderer@@UAEJPAUIMediaSample@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual struct IMediaSample * __thiscall CBaseRenderer::GetCurrentSample(void)" (?GetCurrentSample@CBaseRenderer@@UAEPAUIMediaSample@@XZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual int __thiscall CBaseRenderer::HaveCurrentSample(void)" (?HaveCurrentSample@CBaseRenderer@@UAEHXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::Receive(struct IMediaSample *)" (?Receive@CBaseRenderer@@UAEJPAUIMediaSample@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer:
repareReceive(struct IMediaSample *)" (?PrepareReceive@CBaseRenderer@@UAEJPAUIMediaSample@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::CompleteConnect(struct IPin *)" (?CompleteConnect@CBaseRenderer@@UAEJPAUIPin@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::BreakConnect(void)" (?BreakConnect@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::EndFlush(void)" (?EndFlush@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::BeginFlush(void)" (?BeginFlush@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer:
topStreaming(void)" (?StopStreaming@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer:
tartStreaming(void)" (?StartStreaming@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::Inactive(void)" (?Inactive@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::Active(void)" (?Active@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::ClearPendingSample(void)" (?ClearPendingSample@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::CancelNotification(void)" (?CancelNotification@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::EndOfStream(void)" (?EndOfStream@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::ResetEndOfStream(void)" (?ResetEndOfStream@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer:
endEndOfStream(void)" (?SendEndOfStream@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseVideoRenderer:
houldDrawSampleNow(struct IMediaSample *,__int64 *,__int64 *)" (?ShouldDrawSampleNow@CBaseVideoRenderer@@UAEJPAUIMediaSample@@PA_J1@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::GetSampleTimes(struct IMediaSample *,__int64 *,__int64 *)" (?GetSampleTimes@CBaseRenderer@@UAEJPAUIMediaSample@@PA_J1@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual int __thiscall CBaseVideoRenderer:
cheduleSample(struct IMediaSample *)" (?ScheduleSample@CBaseVideoRenderer@@UAEHPAUIMediaSample@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual void __thiscall CBaseVideoRenderer::OnWaitEnd(void)" (?OnWaitEnd@CBaseVideoRenderer@@UAEXXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual void __thiscall CBaseVideoRenderer::OnWaitStart(void)" (?OnWaitStart@CBaseVideoRenderer@@UAEXXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseVideoRenderer::OnStopStreaming(void)" (?OnStopStreaming@CBaseVideoRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseVideoRenderer::OnStartStreaming(void)" (?OnStartStreaming@CBaseVideoRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual void __thiscall CBaseVideoRenderer::OnRenderEnd(struct IMediaSample *)" (?OnRenderEnd@CBaseVideoRenderer@@UAEXPAUIMediaSample@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual void __thiscall CBaseVideoRenderer::OnRenderStart(struct IMediaSample *)" (?OnRenderStart@CBaseVideoRenderer@@UAEXPAUIMediaSample@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::CompleteStateChange(enum _FilterState)" (?CompleteStateChange@CBaseRenderer@@UAEJW4_FilterState@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::WaitForRenderTime(void)" (?WaitForRenderTime@CBaseRenderer@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer:
ourceThreadCanWait(int)" (?SourceThreadCanWait@CBaseRenderer@@UAEJH@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseRenderer::GetMediaPositionInterface(struct _GUID const &,void * *)" (?GetMediaPositionInterface@CBaseRenderer@@UAEJABU_GUID@@PAPAX@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual class CBasePin * __thiscall CBaseRenderer::GetPin(int)" (?GetPin@CBaseRenderer@@UAEPAVCBasePin@@H@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual int __thiscall CBaseRenderer::GetPinCount(void)" (?GetPinCount@CBaseRenderer@@UAEHXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseFilter::GetPinVersion(void)" (?GetPinVersion@CBaseFilter@@UAEJXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __thiscall CBaseFilter:
treamTime(class CRefTime &)" (?StreamTime@CBaseFilter@@UAEJAAVCRefTime@@@Z)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual unsigned long __stdcall CBaseFilter::NonDelegatingRelease(void)" (?NonDelegatingRelease@CBaseFilter@@UAGKXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual unsigned long __stdcall CUnknown::NonDelegatingAddRef(void)" (?NonDelegatingAddRef@CUnknown@@UAGKXZ)
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol "public: virtual long __stdcall CBaseVideoRenderer::NonDelegatingQueryInterface(struct _GUID const &,void * *)" (?NonDelegatingQueryInterface@CBaseVideoRenderer@@UAGJABU_GUID@@PAPAX@Z)
bsVideo.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"public: virtual __thiscall CBaseVideoRenderer::~CBaseVideoRenderer(void)" (??1CBaseVideoRenderer@@UAE@XZ)', verwiesen in Funktion '__unwindfunclet$??0bsVideoRenderer@@QAE@PAUIUnknown@@PAJ@Z$0'
bsVideo.obj : error LNK2019: Nicht aufgelöstes externes Symbol '"public: __thiscall CBaseVideoRenderer::CBaseVideoRenderer(struct _GUID const &,char *,struct IUnknown *,long *)" (??0CBaseVideoRenderer@@QAE@ABU_GUID@@PADPAUIUnknown@@PAJ@Z)', verwiesen in Funktion '"public: __thiscall bsVideoRenderer::bsVideoRenderer(struct IUnknown *,long *)" (??0bsVideoRenderer@@QAE@PAUIUnknown@@PAJ@Z)'
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol _MEDIASUBTYPE_RGB24
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol _MEDIATYPE_Video
bsVideo.obj : error LNK2001: Nichtaufgelöstes externes Symbol _FORMAT_VideoInfo
Debug/BigScene.dll : fatal error LNK1120: 82 unaufgelöste externe Verweise
Sorry für den langen Post, aber vielleicht kennt ja jemand das Problem und kann mir weiter helfen. ???