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.h

    http://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\Include

    Beim Build erstellen lief alles glatt.
    C:\DXTookit\Bin\Desktop_2013\Win32\Release\DirectXTK.lib wurde erstellt

    das der momentane stand,bleib weiter dran vllt hilft es jemanden.



  • d3d11.lib
    dxgi.lib
    dxguid.lib
    winmm.lib
    comctl32.lib

    eingefü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 😃


Anmelden zum Antworten