DirectXTK funktionsfähig machen
-
Hi,
ich möchte gern das DXToolkit verwenden...
(Sorry für die Noobfrage)
Bei meinen ersten gehversuchen, erhalte ich diese Fehler:Fehler 5 error LNK1104: Datei "C:\DXTookit\Bin\Desktop_2013\Win32\Debug\DirectXTK.lib" kann nicht geöffnet werden.
bzw.
Fehler 1 error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'PixelFormat' c:\program files (x86)\windows kits\8.1\include\um\wincodec.hhttp://www.fotos-hochladen.net/uploads/dxtoolkittesthlvrbd5ewx.png
So wie das aus sieht hab ich besagte "DirectXTK.lib" gar nicht?
Muss ich die selbst erstellen?(irgendwo gelesen stand aber nix näheres) Wie?
Mein Ansatz war :1>------ Erstellen gestartet: Projekt: DirectXTK_Desktop_2013, Konfiguration: Release Win32 ------ 1> pch.cpp 1> AlphaTestEffect.cpp 1> BasicEffect.cpp 1> CommonStates.cpp 1> DDSTextureLoader.cpp 1> DGSLEffect.cpp 1> DGSLEffectFactory.cpp 1> DualTextureEffect.cpp 1> BinaryReader.cpp 1> EffectCommon.cpp 1> EffectFactory.cpp 1> EnvironmentMapEffect.cpp 1> GamePad.cpp 1> GeometricPrimitive.cpp 1> Model.cpp 1> ModelLoadCMO.cpp 1> ModelLoadSDKMESH.cpp 1> ModelLoadVBO.cpp 1> ScreenGrab.cpp 1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\wincodec.h(943): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'PixelFormat' 1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\wincodec.h(943): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt. 1> SimpleMath.cpp 1> SkinnedEffect.cpp 1> Kompilieren... 1> SpriteBatch.cpp 1> PrimitiveBatch.cpp 1> SpriteFont.cpp 1> VertexTypes.cpp 1> WICTextureLoader.cpp 1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\wincodec.h(943): error C2146: Syntaxfehler: Fehlendes ';' vor Bezeichner 'PixelFormat' 1>C:\Program Files (x86)\Windows Kits\8.1\Include\um\wincodec.h(943): error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
Das dabei heraus gekommen...
Würd mich tierisch freuen, wenn mir da ma jemand erklärt was ich da machen muss.
-
habe alte Directx SDK abhängigkeiten aus include/lib entfernt
Fehler 3 error C1083: Datei (Include) kann nicht geöffnet werden: "functional": No such file or directory C:\DXTookit\Inc\SimpleMath.h
hab dann eingefügt:
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\lib
C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\IncludeBeim Build erstellen lief alles glatt.
C:\DXTookit\Bin\Desktop_2013\Win32\Release\DirectXTK.lib wurde erstelltdas der momentane stand,bleib weiter dran vllt hilft es jemanden.
-
d3d11.lib
dxgi.lib
dxguid.lib
winmm.lib
comctl32.libeingefügt.
Dann wollt ich ma nen Tutorialcode ausprobieren kam das :
1>------ Erstellen gestartet: Projekt: Projekt1DXToolkitTest, Konfiguration: Debug Win32 ------ 1> DirectXTK.lib(SpriteBatch.obj) : Es wurde ein mit /GL kompiliertes MSIL .netmodule oder module gefunden. Verknüpfung wird mit /LTCG erneut gestartet. Fügen Sie /LTCG zur Linkbefehlszeile hinzu, um die Linkerleistung zu erhöhen. 1>LINK : warning LNK4075: /INCREMENTAL wird aufgrund der Angabe von /LTCG ignoriert. 1>directx11Interface.obj : warning LNK4075: /EDITANDCONTINUE wird aufgrund der Angabe von /OPT:LBR ignoriert. 1>DirectXTK.lib(SpriteBatch.obj) : error LNK2038: Konflikt ermittelt f³r "_ITERATOR_DEBUG_LEVEL": Der Wert "0" stimmt nicht mit dem Wert "2" in directx11Interface.obj ³berein. 1>DirectXTK.lib(SpriteBatch.obj) : error LNK2038: Konflikt ermittelt f³r "RuntimeLibrary": Der Wert "MD_DynamicRelease" stimmt nicht mit dem Wert "MDd_DynamicDebug" in directx11Interface.obj ³berein. 1>DirectXTK.lib(DDSTextureLoader.obj) : error LNK2038: Konflikt ermittelt f³r "_ITERATOR_DEBUG_LEVEL": Der Wert "0" stimmt nicht mit dem Wert "2" in directx11Interface.obj ³berein. 1>DirectXTK.lib(DDSTextureLoader.obj) : error LNK2038: Konflikt ermittelt f³r "RuntimeLibrary": Der Wert "MD_DynamicRelease" stimmt nicht mit dem Wert "MDd_DynamicDebug" in directx11Interface.obj ³berein. 1>DirectXTK.lib(pch.obj) : error LNK2038: Konflikt ermittelt f³r "_ITERATOR_DEBUG_LEVEL": Der Wert "0" stimmt nicht mit dem Wert "2" in directx11Interface.obj ³berein. 1>DirectXTK.lib(pch.obj) : error LNK2038: Konflikt ermittelt f³r "RuntimeLibrary": Der Wert "MD_DynamicRelease" stimmt nicht mit dem Wert "MDd_DynamicDebug" in directx11Interface.obj ³berein. 1>DirectXTK.lib(CommonStates.obj) : error LNK2038: Konflikt ermittelt f³r "_ITERATOR_DEBUG_LEVEL": Der Wert "0" stimmt nicht mit dem Wert "2" in directx11Interface.obj ³berein. 1>DirectXTK.lib(CommonStates.obj) : error LNK2038: Konflikt ermittelt f³r "RuntimeLibrary": Der Wert "MD_DynamicRelease" stimmt nicht mit dem Wert "MDd_DynamicDebug" in directx11Interface.obj ³berein. 1>DirectXTK.lib(VertexTypes.obj) : error LNK2038: Konflikt ermittelt f³r "_ITERATOR_DEBUG_LEVEL": Der Wert "0" stimmt nicht mit dem Wert "2" in directx11Interface.obj ³berein. 1>DirectXTK.lib(VertexTypes.obj) : error LNK2038: Konflikt ermittelt f³r "RuntimeLibrary": Der Wert "MD_DynamicRelease" stimmt nicht mit dem Wert "MDd_DynamicDebug" in directx11Interface.obj ³berein. 1>LINK : warning LNK4098: Standardbibliothek "MSVCRT" steht in Konflikt mit anderen Bibliotheken; /NODEFAULTLIB:Bibliothek verwenden. 1>main.obj : error LNK2001: Nicht aufgel÷stes externes Symbol ""public: void __fastcall DirectX::SpriteBatch::Begin(enum DirectX::SpriteSortMode,struct ID3D11BlendState *,struct ID3D11SamplerState *,struct ID3D11DepthStencilState *,struct ID3D11RasterizerState *,class std::function<void __cdecl(void)>,struct DirectX::XMMATRIX const &)" (?Begin@SpriteBatch@DirectX@@QAIXW4SpriteSortMode@2@PAUID3D11BlendState@@PAUID3D11SamplerState@@PAUID3D11DepthStencilState@@PAUID3D11RasterizerState@@V?$function@$$A6AXXZ@std@@ABUXMMATRIX@2@@Z)". 1>main.obj : error LNK2001: Nicht aufgel÷stes externes Symbol ""public: void __fastcall DirectX::SpriteBatch::Draw(struct ID3D11ShaderResourceView *,struct DirectX::XMFLOAT2 const &,struct DirectX::__vector4 const &)" (?Draw@SpriteBatch@DirectX@@QAIXPAUID3D11ShaderResourceView@@ABUXMFLOAT2@2@ABU__vector4@2@@Z)". 1>c:\users\hanke\documents\visual studio 2013\Projects\Projekt1DXToolkitTest\Debug\Projekt1DXToolkitTest.exe : fatal error LNK1120: 2 nicht aufgel÷ste Externe ========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 1 aktuell, 0 übersprungen ==========
Da häng ich grade...
-
C:\DXTookit\Bin\Desktop_2013\Win32\Release\DirectXTK.lib
hatte ich auch eingefügt zu den libs.
Linker-> Allgemein bei den Bibliotheksabhängigkeitseingaben verwendet -> "Ja"
jetzt kommt:
1>------ Erstellen gestartet: Projekt: Projekt1DXToolkitTest, Konfiguration: Debug Win32 ------ 1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: void __fastcall DirectX::SpriteBatch::Begin(enum DirectX::SpriteSortMode,struct ID3D11BlendState *,struct ID3D11SamplerState *,struct ID3D11DepthStencilState *,struct ID3D11RasterizerState *,class std::function<void __cdecl(void)>,struct DirectX::XMMATRIX const &)" (?Begin@SpriteBatch@DirectX@@QAIXW4SpriteSortMode@2@PAUID3D11BlendState@@PAUID3D11SamplerState@@PAUID3D11DepthStencilState@@PAUID3D11RasterizerState@@V?$function@$$A6AXXZ@std@@ABUXMMATRIX@2@@Z)" in Funktion ""public: void __thiscall Application::Run(void)" (?Run@Application@@QAEXXZ)". 1>main.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""public: void __fastcall DirectX::SpriteBatch::Draw(struct ID3D11ShaderResourceView *,struct DirectX::XMFLOAT2 const &,struct DirectX::__vector4 const &)" (?Draw@SpriteBatch@DirectX@@QAIXPAUID3D11ShaderResourceView@@ABUXMFLOAT2@2@ABU__vector4@2@@Z)" in Funktion ""public: void __thiscall Application::Run(void)" (?Run@Application@@QAEXXZ)". 1>c:\users\hanke\documents\visual studio 2013\Projects\Projekt1DXToolkitTest\Debug\Projekt1DXToolkitTest.exe : fatal error LNK1120: 2 nicht aufgelöste Externe ========== Erstellen: 0 erfolgreich, 1 fehlerhaft, 1 aktuell, 0 übersprungen ==========
Ein Fehler nach dem anderen...^^
Entwickelt sich vllt zum Tutorial
-
#ifndef APP #define APP #include "win32window.h" #include "directx11Interface.h" #include <SpriteBatch.h> #include <DDSTextureLoader.h> #include <SimpleMath.h> class Application { std::unique_ptr<DirectX::SpriteBatch> sprite; std::unique_ptr<Win32Window> window; std::unique_ptr<DirectX11Interface> dxInterface; ID3D11ShaderResourceView* texture; public: Application() { window = std::make_unique<Win32Window>(L"Test", [this]{Run(); }); dxInterface = std::make_unique<DirectX11Interface>(window->get_clientWidth(), window->get_clientHeight(), true, window->get_hWnd(), window->get_Fullscreen(), 1.0f, 1000.0f); sprite = std::make_unique<DirectX::SpriteBatch>(dxInterface->GetDeviceContext()); HRESULT hr = DirectX::CreateDDSTextureFromFile(dxInterface->GetDevice(), L"frontviewalpha.dds", nullptr, &texture); window->run_Loop(); } void Run() { dxInterface->BeginScene(0, 0, 0, 1.0f); sprite->Begin(); sprite->Draw(texture, DirectX::SimpleMath::Vector2(100, 100)); sprite->End(); dxInterface->EndScene(); } ~Application() {} }; #endif
HRESULT hr = DirectX::CreateDDSTextureFromFile(dxInterface->GetDevice(), L"frontviewalpha.dds", nullptr, &texture);
funktioniert und gibt S_OK zurück.
Bei
sprite->Begin();
krachts.
Über nen Tipp würd ich mich freuen,wenn mehr infos gebraucht werden stehe ich natürlich zur verfügung.
-
hab den Fehler gefunden:
#define _XM_NO_INTRINSICS_
hat den fehler verursacht.
Da ich mir Code aus alten Projekten kopiert hatte.
Wer soll den darauf kommen...Nun ja jetzt funktionierts