FridayHold | Дата: Воскресенье, 15.03.2009, 20:59 | Сообщение # 1 |
Рядовой
Группа: Пользователи
Сообщений: 1
Статус: Offline
| Всем привет. У меня возникла проблема при запуске приложения которое я сам написал. Вот сама проблема - "Невозможно создать 3Д устройство". Вот мои файлы если вы увидили в них ошибку (логическую - так как синтаксических нету, я уже скомпилировал и запускал) прошу сказать. Заранее благодарю! Мой проект состоит из 5 файлов: 1)FH_InitialisingDirectX.cpp 2)FH_InitialisingDirectX.h 3)FH_MainWindow.cpp 4)FH_MainWindow.h 5)Start.cpp ================== ============================================= Start.cpp =============================================================== Quote #pragma comment(lib, "d3d9.lib") #pragma comment(lib, "d3dx9.lib") #pragma comment(lib, "winmm.lib") #include "FH_MainWindow.h" #include "FH_InitialisingDirectX.h" int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow) { FH_MainWindow* MWin = new FH_MainWindow(); FH_InitialisingDirectX* InitDx = new FH_InitialisingDirectX(); MWin->m_hInst = hInstance; MWin->FH_CreateWindowClassEx(LoadCursor(NULL, IDC_ARROW), LoadIcon(NULL, IDI_APPLICATION), LoadIcon(NULL, IDI_APPLICATION)); MWin->FH_CreateWindowEx(WS_EX_OVERLAPPEDWINDOW, WS_OVERLAPPEDWINDOW); MWin->FH_MessageManagerEx(); InitDx->UnInitilisingDirectX(); MWin->FH_DestroyWindow(); return 1; } LRESULT CALLBACK MsgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam) { switch(iMsg) { case WM_CREATE: return(0); case WM_PAINT: return(0); case WM_DESTROY: case WM_CLOSE: PostQuitMessage(0); return(0); default: return DefWindowProc(hWnd, iMsg, wParam, lParam); } } Сории остальные файлы не описал, потомучто при создание темы выдавало ошибки о превышеном лимите текста. Я их опишу в слудующих сообщених! Добавлено (15.03.2009, 20:58) --------------------------------------------- =============================================================== FH_MainWindow.h =============================================================== Quote //==================================================================================== // File: FH_MainWindow.h // Version: 2.0 //==================================================================================== #ifndef _FH_MAINWINDOW_H_ #define _FH_MAINWINDOW_H_ #include <windows.h> #include <windowsx.h> #include "FH_InitialisingDirectX.h" #define WND_CLASS_NAME "Demo" #define WND_TITLE_NAME "Demo" class FH_MainWindow { public: HWND m_hWnd; HINSTANCE m_hInst; int m_iWndWidth; int m_iWndHeight; int m_iWndPosX; int m_iWndPosY; bool keys[256]; public: FH_MainWindow(); ~FH_MainWindow(); void FH_CreateWindowClass(HCURSOR hCursor, HICON hIcon); void FH_CreateWindowClassEx(HCURSOR hCursor, HICON hIcon, HICON hIconSm); void FH_CreateWindow(DWORD dwStyle); void FH_CreateWindowEx(DWORD dwStyleEx, DWORD dwStyle); void FH_MessageManager(); void FH_MessageManagerEx(); void FH_DestroyWindow(); }; long CALLBACK MsgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam); #endif//_FH_MAINWINDOW_H_ Добавлено (15.03.2009, 20:58) --------------------------------------------- =============================================================== FH_MainWindow.cpp =============================================================== Quote //==================================================================================== // File: FH_MainWindow.cpp // Version: 2.0 //==================================================================================== #include "FH_MainWindow.h" FH_InitialisingDirectX *InitDx = new FH_InitialisingDirectX(); FH_MainWindow::FH_MainWindow() { m_hWnd = NULL; m_hInst = NULL; m_iWndWidth = 800; m_iWndHeight = 600; m_iWndPosX = 0; m_iWndPosY = 0; } FH_MainWindow::~FH_MainWindow() { } void FH_MainWindow::FH_CreateWindowClass(HCURSOR hCursor, HICON hIcon) { WNDCLASS sClassWnd = { CS_HREDRAW | CS_VREDRAW | CS_OWNDC, MsgProc, 0, 0, m_hInst, hIcon, hCursor, (HBRUSH)GetStockObject(WHITE_BRUSH), NULL, WND_CLASS_NAME }; RegisterClass(&sClassWnd); } void FH_MainWindow::FH_CreateWindowClassEx(HCURSOR hCursor, HICON hIcon, HICON hIconSm) { WNDCLASSEX sClassWnd = { sizeof(WNDCLASSEX), CS_HREDRAW | CS_VREDRAW | CS_OWNDC, MsgProc, 0, 0, m_hInst, hIcon, hCursor, (HBRUSH)GetStockObject(WHITE_BRUSH), NULL, WND_CLASS_NAME, h IconSm }; RegisterClassEx(&sClassWnd); } void FH_MainWindow::FH_CreateWindow(DWORD dwStyle) { m_hWnd = CreateWindow ( WND_CLASS_NAME, WND_TITLE_NAME, dwStyle, m_iWndPosX, m_iWndPosY, m_iWndWidth, m_iWndHeight, NULL, NULL, m_hInst, NULL ); ShowWindow(m_hWnd, SW_SHOW); SetFocus(m_hWnd); UpdateWindow(m_hWnd); SetForegroundWindow(m_hWnd); } void FH_MainWindow::FH_CreateWindowEx(DWORD dwStyleEx, DWORD dwStyle) { m_hWnd = CreateWindowEx ( dwStyleEx, WND_CLASS_NAME, WND_TITLE_NAME, dwStyle, m_iWndPosX, m_iWndPosY, m_iWndWidth, m_iWndHeight, NULL, NULL, m_hInst, NULL ); ShowWindow(m_hWnd, SW_SHOW); SetFocus(m_hWnd); UpdateWindow(m_hWnd); SetForegroundWindow(m_hWnd); } void FH_MainWindow::FH_MessageManager() { MSG msg; while(GetMessage (&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } } void FH_MainWindow::FH_MessageManagerEx() { MSG msg; if(InitDx->InitialisingDirectX()) { while (InitDx->m_bRenderProcess) { if(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) { if (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } } else { if(keys[VK_ESCAPE]) InitDx->m_bRenderProcess = false; if(keys[VK_F1]) { InitDx->m_bFullScreen = !InitDx->m_bFullScreen; } InitDx->Render(); } } } } void FH_MainWindow::FH_DestroyWindow() { UnregisterClass(WND_CLASS_NAME, m_hInst); DestroyWindow(m_hWnd); } Добавлено (15.03.2009, 20:59) --------------------------------------------- =============================================================== FH_Initialising.h =============================================================== Quote //==================================================================================== // File: FH_MainWindow.h // Version: 2.0 //==================================================================================== #ifndef _FH_MAINWINDOW_H_ #define _FH_MAINWINDOW_H_ #include <windows.h> #include <windowsx.h> #include "FH_InitialisingDirectX.h" #define WND_CLASS_NAME "Demo" #define WND_TITLE_NAME "Demo" class FH_MainWindow { public: HWND m_hWnd; HINSTANCE m_hInst; int m_iWndWidth; int m_iWndHeight; int m_iWndPosX; int m_iWndPosY; bool keys[256]; public: FH_MainWindow(); ~FH_MainWindow(); void FH_CreateWindowClass(HCURSOR hCursor, HICON hIcon); void FH_CreateWindowClassEx(HCURSOR hCursor, HICON hIcon, HICON hIconSm); void FH_CreateWindow(DWORD dwStyle); void FH_CreateWindowEx(DWORD dwStyleEx, DWORD dwStyle); void FH_MessageManager(); void FH_MessageManagerEx(); void FH_DestroyWindow(); }; long CALLBACK MsgProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam); #endif//_FH_MAINWINDOW_H_ Добавлено (15.03.2009, 20:59) --------------------------------------------- =============================================================== FH_Initialising.cpp =============================================================== Quote //==================================================================================== // File: FH_MainWindow.cpp // Version: 2.0 //==================================================================================== #include "FH_MainWindow.h" FH_InitialisingDirectX *InitDx = new FH_InitialisingDirectX(); FH_MainWindow::FH_MainWindow() { m_hWnd = NULL; m_hInst = NULL; m_iWndWidth = 800; m_iWndHeight = 600; m_iWndPosX = 0; m_iWndPosY = 0; } FH_MainWindow::~FH_MainWindow() { } void FH_MainWindow::FH_CreateWindowClass(HCURSOR hCursor, HICON hIcon) { WNDCLASS sClassWnd = { CS_HREDRAW | CS_VREDRAW | CS_OWNDC, MsgProc, 0, 0, m_hInst, hIcon, hCursor, (HBRUSH)GetStockObject(WHITE_BRUSH), NULL, WND_CLASS_NAME }; RegisterClass(&sClassWnd); } void FH_MainWindow::FH_CreateWindowClassEx(HCURSOR hCursor, HICON hIcon, HICON hIconSm) { WNDCLASSEX sClassWnd = { sizeof(WNDCLASSEX), CS_HREDRAW | CS_VREDRAW | CS_OWNDC, MsgProc, 0, 0, m_hInst, hIcon, hCursor, (HBRUSH)GetStockObject(WHITE_BRUSH), NULL, WND_CLASS_NAME, h IconSm }; RegisterClassEx(&sClassWnd); } void FH_MainWindow::FH_CreateWindow(DWORD dwStyle) { m_hWnd = CreateWindow ( WND_CLASS_NAME, WND_TITLE_NAME, dwStyle, m_iWndPosX, m_iWndPosY, m_iWndWidth, m_iWndHeight, NULL, NULL, m_hInst, NULL ); ShowWindow(m_hWnd, SW_SHOW); SetFocus(m_hWnd); UpdateWindow(m_hWnd); SetForegroundWindow(m_hWnd); } void FH_MainWindow::FH_CreateWindowEx(DWORD dwStyleEx, DWORD dwStyle) { m_hWnd = CreateWindowEx ( dwStyleEx, WND_CLASS_NAME, WND_TITLE_NAME, dwStyle, m_iWndPosX, m_iWndPosY, m_iWndWidth, m_iWndHeight, NULL, NULL, m_hInst, NULL ); ShowWindow(m_hWnd, SW_SHOW); SetFocus(m_hWnd); UpdateWindow(m_hWnd); SetForegroundWindow(m_hWnd); } void FH_MainWindow::FH_MessageManager() { MSG msg; while(GetMessage (&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } } void FH_MainWindow::FH_MessageManagerEx() { MSG msg; if(InitDx->InitialisingDirectX()) { while (InitDx->m_bRenderProcess) { if(PeekMessage(&msg, NULL, 0, 0, PM_NOREMOVE)) { if (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } } else { if(keys[VK_ESCAPE]) InitDx->m_bRenderProcess = false; if(keys[VK_F1]) { InitDx->m_bFullScreen = !InitDx->m_bFullScreen; //????????????? ? ???????/????????????? ????? } InitDx->Render(); } } } } void FH_MainWindow::FH_DestroyWindow() { UnregisterClass(WND_CLASS_NAME, m_hInst); DestroyWindow(m_hWnd); } Можете это использовать как начало в своих проектах, если канешно же мы решим проблему с созданием устройства 
В данный момент идет разработка крупного проект (игры по онлайну), всех желающих поучаствовать пишыте в ICQ: 472835973. Буду рад слышать/видеть в ICQ именно вас!
|
|
| |