Модераторы: Rickert, Alexeis, BorisVorontsov

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Пример из книжки, DirectX 9 
:(
    Опции темы
rawdef
  Дата 24.3.2009, 13:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



всем доброго времени суток. Вообщем хочу научиться программировать, игры тоже интересно, нашёл тут темку, как было сказанно из советов скачал Станислав Горнаков - DirectX 9. Уроки программирования на C++, поставил VS2005, но 2003 не нашёл в нете, вбил первый пример из книги (листинг 1.1) и не работает  smile   
вот что написалло 
Цитата

1>------ Build started: Project: urok1, Configuration: Debug Win32 ------
1>Compiling...
1>WindowsBazis.cpp
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(24) : error C2065: 'WINDCLASSEX' : undeclared identifier
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(24) : error C2146: syntax error : missing ';' before identifier 'windowsclass'
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(24) : error C2065: 'windowsclass' : undeclared identifier
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(27) : error C2228: left of '.cbSize' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(27) : error C2070: ''unknown-type'': illegal sizeof operand
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(28) : error C2228: left of '.style' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(29) : error C2228: left of '.lpfnWndProc' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(30) : error C2228: left of '.cbClsExtra' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(31) : error C2228: left of '.cbWndExtra' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(32) : error C2228: left of '.hInstance' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(33) : error C2228: left of '.hIcon' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(34) : error C2228: left of '.hCursor' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(35) : error C2228: left of '.hbrBackground' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(36) : error C2228: left of '.lpszMenuName' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(37) : error C2228: left of '.lpszClassName' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(38) : error C2228: left of '.hIconSm' must have class/struct/union
1>        type is ''unknown-type''
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(52) : error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [13]' to 'LPCWSTR'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(58) : error C3861: 'TranslateMassage': identifier not found
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(61) : warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data
1>Build log was saved at "file://e:\Visual Studio 2005\Projects\urok1\urok1\Debug\BuildLog.htm"
1>urok1 - 18 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

помогите пжалуста  smile 

вот исходник

Код

#include <windows.h>
LRESULT CALLBACK MainWinProc (HWND hwnd,
                              UINT msg,
                              WPARAM wparam,
                              LPARAM lparam)
{
    switch (msg)
    {
    case WM_PAINT:
        break;
    case WM_DESTROY:
        {
            PostQuitMessage(0);
            return (0);
        }break;
    }
    return (DefWindowProc(hwnd, msg, wparam, lparam));
}
int WINAPI WinMain(HINSTANCE hinstance,
                   HINSTANCE hprevinstance,
                   LPSTR lpcmdline,
                   int ncmdshow)
{
    WINDCLASSEX windowsclass;
    HWND hwnd;
    MSG msg;
    windowsclass.cbSize = sizeof(WINDCLASSEX);
    windowsclass.style = CS_DBLCLKS | CS_OWNDC | CS_HREDRAW | CS_VREDRAW;
    windowsclass.lpfnWndProc = MainWinProc;
    windowsclass.cbClsExtra = 0;
    windowsclass.cbWndExtra = 0;
    windowsclass.hInstance = hinstance;
    windowsclass.hIcon = LoadIcon (NULL, IDI_APPLICATION);
    windowsclass.hCursor = LoadCursor (NULL, IDC_ARROW);
    windowsclass.hbrBackground = (HBRUSH) GetStockObject (GRAY_BRUSH);
    windowsclass.lpszMenuName = NULL;
    windowsclass.lpszClassName = "WINDOWSCLASS";
    windowsclass.hIconSm = LoadIcon (NULL, IDI_APPLICATION);

    if(!RegisterClassEx(&windowsclass))
        return(0);

    if(!(hwnd = CreateWindowEx (NULL,
        "windowsclass",
        "Базовое Окно для DirectX",
        WS_OVERLAPPEDWINDOW | WS_VISIBLE,
        0,0,
        500,400,
        NULL,
        NULL,
        hinstance,
        NULL)))
        return (0);
    ShowWindow(hwnd, SW_SHOWDEFAULT);
    UpdateWindow (hwnd);
    while (GetMessage(&msg, NULL, 0, 0))
    {
        TranslateMassage(&msg);
        DispatchMessage (&msg);
    }
    return (msg.wParam);
}



M
Alexeis
Модератор: используйте подсветку кода


Это сообщение отредактировал(а) Alexeis - 24.3.2009, 13:12
PM MAIL   Вверх
Alexeis
Дата 24.3.2009, 13:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 5
Всего: 459



WINDCLASSEX заменить на WNDCLASSEX, возможно это из устаревшего SDK.

Добавлено через 29 секунд
Дальше многие ошибки исчезнут сами.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Mazzi
Дата 24.3.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: нет
Всего: 21



Первая же ошибка "'WINDCLASSEX' : undeclared identifier"   говорит о том, что у тебя неправильно настроена среда, либо не хватает объявления переменной для препроцессора.

Почитай книжку по VS2005 в том месте , где описываются настройки среды для компиляции простейших программ.

Написал бы тебе точнее, но я не пользуюсь VS2005.


--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
rawdef
  Дата 24.3.2009, 20:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



Alexeis, заменил всё на WNDCLASSEX и вот что выдало
Цитата

1>------ Build started: Project: urok1, Configuration: Debug Win32 ------
1>Compiling...
1>WindowsBazis.cpp
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(37) : error C2440: '=' : cannot convert from 'const char [13]' to 'LPCWSTR'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(52) : error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [13]' to 'LPCWSTR'
1>        Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(58) : error C3861: 'TranslateMassage': identifier not found
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(61) : warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data
1>Build log was saved at "file://e:\Visual Studio 2005\Projects\urok1\urok1\Debug\BuildLog.htm"
1>urok1 - 3 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========


Mazzi, на пока для меня это сложно, я directX решил начать осваивать
PM MAIL   Вверх
Alexeis
Дата 24.3.2009, 21:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 5
Всего: 459



  Судя по всему где-то в проекте включена настройка юникод (UNICODE), поэтому компилятор вместо функции CreateWindowExA подставляет юникодную версию CreateWindowExW. Соответственно юникодные функции хотят юникодные строки, а им дают ANSI. 
  Советую просмотреть свойства проекта на предмет включения опции UNICODE и отключить ее.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
rawdef
Дата 25.3.2009, 03:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



а где её отключать?
PM MAIL   Вверх
Alexeis
Дата 25.3.2009, 10:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 5
Всего: 459



Project->Properties->Configuration Properties->General->Character Set - установить Use Multi-Byte Character Set.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
rawdef
Дата 25.3.2009, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



ну, уже ошибок меньше
Цитата

1>Compiling...
1>WindowsBazis.cpp
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(58) : error C3861: 'TranslateMassage': identifier not found
1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(61) : warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data
1>Build log was saved at "file://e:\Visual Studio 2005\Projects\urok1\urok1\Debug\BuildLog.htm"
1>urok1 - 1 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

это всё из-за несовместимости 2003й студии и 2005й? вот хочу научиться програмировать, я правильный путь выбрал? или 2008ю студию ставить? или ещё что...
сейчас попробую 2003ю поставить, всё же я нашёл её...

Это сообщение отредактировал(а) rawdef - 25.3.2009, 14:04
PM MAIL   Вверх
Alexeis
Дата 25.3.2009, 14:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 5
Всего: 459



rawdef, все совместимо, просто 2005я по дефолту делает проект юникодным.

TranslateMassage - тут очевидно опечатка TranslateMessage


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
Mazzi
Дата 25.3.2009, 14:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Правильный
**


Профиль
Группа: Комодератор
Сообщений: 825
Регистрация: 3.4.2003

Репутация: нет
Всего: 21




Модератор: Сообщение скрыто.



--------------------
Мне нужны помощники.
PM MAIL WWW   Вверх
rawdef
Дата 25.3.2009, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



 smile  smile 
Alexeis, большое спасибо, заработало, зря 2003ю поставил, но думаю пригодится




а по поводу что мне изучать, мне говорят, что всё исходит от того, что я хочу, ну я хочу обычные приложения для винды, ну и вот игры так что думаю студия самое то, но у меня вопрос, на какой версии лучше? сижу на Windows x64 sp2 проц 4 ядра, насколько я полагаю можно компилятор от интела поставить и будут все 4ре ядра использоваться в любой студии, но вот у меня амд. Расскажите пожалуйста эти тонкости...

кстати, проверил в 2003й, оказалось что и там WINDCLASSEX выдало ошибку, но с ней запустилось,

а что тут ему не так? это не ошибка, а предупреждение 
Цитата

1>e:\visual studio 2005\projects\urok1\urok1\windowsbazis.cpp(61) : warning C4244: 'return' : conversion from 'WPARAM' to 'int', possible loss of data

и ещё вопросик, после запуска ошибки не было, но вот что написанно в низу

Цитата

'urok1.exe': Loaded 'E:\Visual Studio 2005\Projects\urok1\debug\urok1.exe', Symbols loaded.
'urok1.exe': Loaded 'NOT_AN_IMAGE', No symbols loaded.
'urok1.exe': Unloaded 'NOT_AN_IMAGE'
'urok1.exe': Loaded 'C:\WINDOWS\SysWOW64\ntdll.dll', No symbols loaded.
'urok1.exe': Loaded 'C:\WINDOWS\SysWOW64\kernel32.dll', No symbols loaded.
'urok1.exe': Loaded 'C:\WINDOWS\SysWOW64\user32.dll', No symbols loaded.
'urok1.exe': Loaded 'C:\WINDOWS\SysWOW64\gdi32.dll', No symbols loaded.
'urok1.exe': Loaded 'C:\WINDOWS\SysWOW64\advapi32.dll', No symbols loaded.
'urok1.exe': Loaded 'C:\WINDOWS\SysWOW64\rpcrt4.dll', No symbols loaded.
'urok1.exe': Loaded 'C:\WINDOWS\SysWOW64\secur32.dll', No symbols loaded.
'urok1.exe': Loaded 'C:\WINDOWS\WinSxS\x86_Microsoft.VC80.DebugCRT_1fc8b3b9a1e18e3b_8.0.50727.42_x-ww_f75eb16c\msvcr80d.dll', Symbols loaded.
'urok1.exe': Loaded 'C:\WINDOWS\SysWOW64\msvcrt.dll', No symbols loaded.
'urok1.exe': Loaded 'C:\WINDOWS\SysWOW64\uxtheme.dll', No symbols loaded.
'urok1.exe': Loaded 'C:\WINDOWS\SysWOW64\MSCTF.dll', No symbols loaded.
The program '[2356] urok1.exe: Native' has exited with code 0 (0x0).


Это сообщение отредактировал(а) Alexeis - 25.3.2009, 16:11
PM MAIL   Вверх
Alexeis
Дата 25.3.2009, 16:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 5
Всего: 459



Цитата(rawdef @  25.3.2009,  14:10 Найти цитируемый пост)
conversion from 'WPARAM' to 'int', possible loss of data

  Размеры типов отличаются, об этом и предупреждение. Чтобы не ругался нужно либо использовать одинаковые типы или приведение типов.


Модератор: rawdef и Mazzi, варез запрещен правилами.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
rawdef
Дата 25.3.2009, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



Alexeis, большое спасибо, правда мне не поятно последнее
и вот что такое тут ему не то 
Цитата

'urok1.exe': Loaded 'C:\WINDOWS\SysWOW64\ntdll.dll', No symbols loaded.

и кстати скомпилированный exe передал другому человеку и не запустилось, выдало 
Цитата

Приложение не было запущено, посколку оно некорректно настроено


PM MAIL   Вверх
Alexeis
Дата 25.3.2009, 17:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 5
Всего: 459



rawdef, это так флудит среда. Говорит что нет у нее дебаг инфы для системной Dll ины (да и откуда ей взяться?).

Цитата(rawdef @  25.3.2009,  16:14 Найти цитируемый пост)
и кстати скомпилированный exe передал другому человеку и не запустилось, выдало 

Скорее всего у него нет CRT Run-Time библиотеки соответствующей (msvcr80.dll или той версии что среда). Тут 2 варианта или линковать CRT в экзешник или пусть установить все рантаймы себе.

Microsoft Visual C++ 2005 Redistributable Package (x86)
На этой страничке есть ссылки на рантаймы других версий вижуалки. Эти пакеты полезно ставить на любую винду.


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
rawdef
Дата 25.3.2009, 22:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 19
Регистрация: 23.3.2009

Репутация: нет
Всего: нет



человек скачал и не заработало
PM MAIL   Вверх
Ответ в темуСоздание новой темы Создание опроса
Вы можете найти полезным что...
Alexeis
Rickert
  • Английская документация по DirectX лежит где-то здесь.
  • Английская документация по OpenGL лежит где-то там.
  • Гейм-дев у нас обсуждают где-то тут

Ждём вас! С уважением, Alexeis, Rickert.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Мультимедия, OpenGL/DirectX | Следующая тема »


 




[ Время генерации скрипта: 0.0570 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.