| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Мультимедия, OpenGL/DirectX > Пример из книжки |
| Автор: rawdef 24.3.2009, 13:07 | ||||||
| всем доброго времени суток. Вообщем хочу научиться программировать, игры тоже интересно, нашёл тут темку, как было сказанно из советов скачал Станислав Горнаков - DirectX 9. Уроки программирования на C++, поставил VS2005, но 2003 не нашёл в нете, вбил первый пример из книги (листинг 1.1) и не работает вот что написалло
помогите пжалуста вот исходник
|
| Автор: Alexeis 24.3.2009, 13:19 |
| WINDCLASSEX заменить на WNDCLASSEX, возможно это из устаревшего SDK. Добавлено через 29 секунд Дальше многие ошибки исчезнут сами. |
| Автор: Mazzi 24.3.2009, 13:26 |
| Первая же ошибка "'WINDCLASSEX' : undeclared identifier" говорит о том, что у тебя неправильно настроена среда, либо не хватает объявления переменной для препроцессора. Почитай книжку по VS2005 в том месте , где описываются настройки среды для компиляции простейших программ. Написал бы тебе точнее, но я не пользуюсь VS2005. |
| Автор: rawdef 24.3.2009, 20:40 | ||
Alexeis, заменил всё на WNDCLASSEX и вот что выдало
Mazzi, на пока для меня это сложно, я directX решил начать осваивать |
| Автор: Alexeis 24.3.2009, 21:17 |
| Судя по всему где-то в проекте включена настройка юникод (UNICODE), поэтому компилятор вместо функции CreateWindowExA подставляет юникодную версию CreateWindowExW. Соответственно юникодные функции хотят юникодные строки, а им дают ANSI. Советую просмотреть свойства проекта на предмет включения опции UNICODE и отключить ее. |
| Автор: rawdef 25.3.2009, 03:05 |
| а где её отключать? |
| Автор: Alexeis 25.3.2009, 10:49 |
| Project->Properties->Configuration Properties->General->Character Set - установить Use Multi-Byte Character Set. |
| Автор: rawdef 25.3.2009, 14:00 | ||
ну, уже ошибок меньше
это всё из-за несовместимости 2003й студии и 2005й? вот хочу научиться програмировать, я правильный путь выбрал? или 2008ю студию ставить? или ещё что... сейчас попробую 2003ю поставить, всё же я нашёл её... |
| Автор: Alexeis 25.3.2009, 14:08 |
| rawdef, все совместимо, просто 2005я по дефолту делает проект юникодным. TranslateMassage - тут очевидно опечатка TranslateMessage |
| Автор: Mazzi 25.3.2009, 14:26 |
Модератор: Сообщение скрыто. |
| Автор: rawdef 25.3.2009, 15:10 | ||||
| Alexeis, большое спасибо, заработало, зря 2003ю поставил, но думаю пригодится а по поводу что мне изучать, мне говорят, что всё исходит от того, что я хочу, ну я хочу обычные приложения для винды, ну и вот игры так что думаю студия самое то, но у меня вопрос, на какой версии лучше? сижу на Windows x64 sp2 проц 4 ядра, насколько я полагаю можно компилятор от интела поставить и будут все 4ре ядра использоваться в любой студии, но вот у меня амд. Расскажите пожалуйста эти тонкости... кстати, проверил в 2003й, оказалось что и там WINDCLASSEX выдало ошибку, но с ней запустилось, а что тут ему не так? это не ошибка, а предупреждение
и ещё вопросик, после запуска ошибки не было, но вот что написанно в низу
|
| Автор: Alexeis 25.3.2009, 16:10 |
Размеры типов отличаются, об этом и предупреждение. Чтобы не ругался нужно либо использовать одинаковые типы или приведение типов. Модератор: rawdef и Mazzi, варез запрещен правилами. |
| Автор: rawdef 25.3.2009, 17:14 | ||||
| Alexeis, большое спасибо, правда мне не поятно последнее и вот что такое тут ему не то
и кстати скомпилированный exe передал другому человеку и не запустилось, выдало
|
| Автор: rawdef 25.3.2009, 22:49 |
| человек скачал и не заработало |
| Автор: Alexeis 25.3.2009, 23:28 |
| rawdef, компилировалось в VS2005? Тогда попробовать нужно в свойствах линкера (Linker) Dynamic Run-time CRT сменить на Static Run-time CRT. |
| Автор: rawdef 26.3.2009, 00:24 |
| да в 2005й. поменял верху с Debug на Release, заработало. что-то нервировать начинает эта книга, значит я скачал за ноябрь 2008 directX sdk, установил, и написанно что добавится стандартный мастер (AppWizard) DirectX 9 Visual C++ Wizard но его нету ни в 2003 студии ни в 2005й почему ещё обратил внимание на то что в книне при установке SDK во вкладке Direct Samples and Source Code выбрали C++ Sample Source Code, а Basic и C# не выбрали, а у меня при установке эта вкладка Direct Samples and Source Code не открывается и поэтому не могу выбрать для какого языка. установленный SDK весит больше 1Гб. |
| Автор: v_enom 1.4.2009, 16:56 |
| rawdef, там в книге опечатка: не WINDCLASSEX а WNDCLASSEX а что касается ошибки error C2664: 'CreateWindowExW' : cannot convert parameter 2 from 'const char [13]' to 'LPCWSTR' то это в свойствах проекта -> Configuration Properties - > General надо менять Charset с Unicode на Not Set |