none
Ошибка Link2019 DirectX/C++ RRS feed

  • Вопрос

  • #ifndef __d3dUtilityH__
    #define __d3dUtilityH__
    
    #include <directx\d3dx9.h>
    
    #pragma comment(lib, "d3d9.lib")
    #pragma comment(lib, "d3dx9.lib")
    #pragma comment(lib,"d3dx9d.lib")
    
    
    
    namespace d3d
    {
    	bool InitD3D(
    		HINSTANCE hInstance,       // [in] Application instance.
    		int width, int height,     // [in] Backbuffer dimensions.
    		bool windowed,             // [in] Windowed (true)or full screen (false).
    		D3DDEVTYPE deviceType,     // [in] HAL or REF
    		IDirect3DDevice9** device);// [out]The created device.
    
    	int EnterMsgLoop(
    		bool(*ptr_display)(float timeDelta));
    
    	LRESULT CALLBACK WndProc(
    		HWND hwnd,
    		UINT msg,
    		WPARAM wParam,
    		LPARAM lParam);
    
    	template<class T> void Release(T t)
    	{
    		if (t)
    		{
    			t->Release();
    			t = 0;
    		}
    	}
    
    	template<class T> void Delete(T t)
    	{
    		if (t)
    		{
    			delete t;
    			t = 0;
    		}
    	}
    }
    
    #endif // __d3dUtilityH__

    Вот заголовочный файл, ошибка следующего рода : 

    error LNK2019: unresolved external symbol __imp__timeGetTime@0 referenced in function "int __cdecl d3d::EnterMsgLoop(bool (__cdecl*)(float))" (?EnterMsgLoop@d3d@@YAHP6A_NM@Z@Z)

    Код не я писал, решил попробовать пример из книги Франк Луна DirectX9

    1 июня 2015 г. 13:57

Все ответы

  • Ошибки такого рода означают что вы забыли добавить какую-то библиотеку в проект.

    Какую именно? Скопируйте название символа в ваш любимый поисковик и обязательно найдете.


    This posting is provided "AS IS" with no warranties, and confers no rights.

    1 июня 2015 г. 16:26
    Модератор
  • Благодарю, нашел в чем была проблема.

    #ifndef __d3dUtilityH__
    #define __d3dUtilityH__
    
    #include <directx\d3dx9.h>
    #include <mmsystem.h>
    #include <Windows.h>
    #include <directx\d3d9.h>
    
    
    #pragma comment(lib, "d3d9.lib")
    #pragma comment(lib, "d3dx9.lib")
    #pragma comment(lib,"d3dx9d.lib")
    #pragma comment(lib,"winmm.lib")
    
    
    
    namespace d3d
    {
    	bool InitD3D(
    		HINSTANCE hInstance,       // [in] Application instance.
    		int width, int height,     // [in] Backbuffer dimensions.
    		bool windowed,             // [in] Windowed (true)or full screen (false).
    		D3DDEVTYPE deviceType,     // [in] HAL or REF
    		IDirect3DDevice9** device);// [out]The created device.
    
    	int EnterMsgLoop(
    		bool(*ptr_display)(float timeDelta));
    
    	LRESULT CALLBACK WndProc(
    		HWND hwnd,
    		UINT msg,
    		WPARAM wParam,
    		LPARAM lParam);
    
    	template<class T> void Release(T t)
    	{
    		if (t)
    		{
    			t->Release();
    			t = 0;
    		}
    	}
    
    	template<class T> void Delete(T t)
    	{
    		if (t)
    		{
    			delete t;
    			t = 0;
    		}
    	}
    }
    
    #endif // __d3dUtilityH__
    

    Вот рабочий варинат.