| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Системное программирование и WinAPI > Стандартное окно Window |
| Автор: dizel003 17.2.2008, 12:07 | ||
Вот написал стандартное окно под windows но он мне даёт непонятные ошибки... Вот программа
Вот он мне даёт такие ошибки и все из за этой строки где мы должны определять оконную функцию - wc.lpfnWndProc=WindowFunc; Compiling... Proekt Word.cpp C:\Program Files\Microsoft Visual Studio\MyProjects\Proekt Word\Proekt Word.cpp(19) : error C2065: 'WindowFunc' : undeclared identifier C:\Program Files\Microsoft Visual Studio\MyProjects\Proekt Word\Proekt Word.cpp(19) : error C2440: '=' : cannot convert from 'int' to 'long (__stdcall *)(struct HWND__ *,unsigned int,unsigned int,long)' Conversion from integral type to pointer type requires reinterpret_cast, C-style cast or function-style cast C:\Program Files\Microsoft Visual Studio\MyProjects\Proekt Word\Proekt Word.cpp(42) : error C2373: 'WindowFunc' : redefinition; different type modifiers C:\Program Files\Microsoft Visual Studio\MyProjects\Proekt Word\Proekt Word.cpp(42) : error C2601: 'WindowFunc' : local function definitions are illegal C:\Program Files\Microsoft Visual Studio\MyProjects\Proekt Word\Proekt Word.cpp(54) : fatal error C1004: unexpected end of file found Error executing cl.exe. Proekt Word.exe - 5 error(s), 0 warning(s) Если кто знает скажите как избавится от ошибок! |
| Автор: MAKCim 17.2.2008, 12:20 | ||
может так
|
| Автор: dizel003 17.2.2008, 12:24 | ||
| 5 ошибку устранил... я после ретурн открыл скобку а незакрыл! Щас попробую! Добавлено @ 12:32 вот исправил но опять ошибки что это значит?
Linking... Proekt Word.obj : error LNK2001: unresolved external symbol "long __stdcall WindowsFunc(struct HWND__ *,unsigned int,unsigned int,long)" (?WindowsFunc@@YGJPAUHWND__@@IIJ@Z) Debug/Proekt Word.exe : fatal error LNK1120: 1 unresolved externals Error executing link.exe. Proekt Word.exe - 2 error(s), 0 warning(s) ВОТ ОШИБКИ!!! |
| Автор: dizel003 17.2.2008, 12:41 |
| ВСЁ СПАСИБО БОЛЬШОЕ!!! Я ВСЕ ИСПРАВИЛ! |
| Автор: dizel003 17.2.2008, 14:16 | ||
| Щас пишу дальше и стал делать меню!!! Но мне даёт какуюто ошибку подскажите пожалуста что за ошибка и как от неё избавится не как не получается! C:\Program Files\Microsoft Visual Studio\MyProjects\Menu Programma\Menu Programma.cpp(5) : fatal error C1083: Cannot open include file: 'Menu.h': No such file or directory Error executing cl.exe. вот программа
Добавлено через 29 секунд Что сделать чтобы он видел такую библиотеку |
| Автор: dizel003 17.2.2008, 15:34 |
| Кажется я понял в чем дело но всеравно не знаю как это исправить! Нужно както определить переменные для меню... вот эти IDM_ALPHA: IDM_BETA: IDM_GAMMA: IDM_EPSILON: IDM_THETA: IDM_HELP: |
| Автор: dizel003 17.2.2008, 17:44 | ||||
Можешь пожалуста поподробнее объяснить как это сделать... я не разу это просто не делал! И не как не пойму что делать.. Что конкретно нужно прописывать в программе? |
| Автор: Kanes 17.2.2008, 17:50 | ||||
Это в случаи, если этот файл лежит в папке проекта Ну либо,
|
| Автор: dizel003 17.2.2008, 18:00 | ||||||
Тоесть нужно создать два документа с расшерением cpp в одной папке и там прописать все переменные!? Тип- #include "Menu.h" MYMENU MENU { POPUP "Раз" { MENUITEM "Альфа", IDM_ALPHA MENUITEM "Бета", IDM_BETA } POPUP "Два" { MENUITEM "Гамма", IDM_GAMMA POPUP "Дельта" { MENUITEM "Эпсилон", IDM_EPSILON } MENUITEM "Тэта", IDM_THETA } MENUITEM "Помощь", IDM_HELP } Вот так написать или как-то ещё? |
| Автор: Djinn 17.2.2008, 18:43 | ||||
| ну например у тебя файл в c:\proect\menu.h ты указываешь:
а если у тебя находиться файл в папке с файлом *.cpp который ты компилишь то er;b просто:
Добавлено через 50 секунд P.S. я казываю обьратный слеши в пути... привык так ! а оно работает и в Windows и в *NIX |
| Автор: dizel003 17.2.2008, 18:54 |
| Не как не могу сделать!(( вот вся программа! Пожалуста исправте и покажите как нужно это стделать на примере! |
| Автор: Djinn 17.2.2008, 19:06 |
| а де Menu.h ?????? =/ или как... ? Добавлено через 1 минуту и 35 секунд както странно ты его инклудишь, а его нема |
| Автор: dizel003 17.2.2008, 19:22 | ||
да я знаю что его нету... и прошу показать как его сделать!!! |
| Автор: Djinn 17.2.2008, 22:04 |
| а что ты туда хочешь впихнуть ? просто пиши что хочешь потом подключай.... P.S. я сам тоже С++ учу, я например там ф-и и классы пишу |
| Автор: HumanAPI 17.2.2008, 22:16 |
| dizel003 Меню у тебя нету потомучто оно должно быть описано в файле ресурса (файл с расширением .rc) |
| Автор: dizel003 17.2.2008, 22:16 | ||
я хочу сделать пример програмного меню... ( в окне windows чтобы было меню ). Написана программа но не работает и я НЕЗНАЮ!!! что нужно писать в файле куда будет обращаться "Menu.h" И прошу подсказать что именно там нужно писать |
| Автор: xvr 18.2.2008, 12:11 | ||||
Чтобы сделать меню в окне его сначала нужно сделать в программе 1) Добавляешь в проект файл ресурсов (опционально, VS сама заведет файл ресурсов, если ты начнешь их создавать) 2) Создаешь в нем меню (с именем MyMenu) 3) Добавляешь в меню пункты (с твоими ID) 4) VS сделает файл resorces.h с твоими ID, именно его и нужно включать инклюдом (вместо menu.h) |
| Автор: Dronchik 18.2.2008, 14:40 |
| xvr, не а resource.h dizel003, я присоединил файл где прочитаешь про создание меню. |
| Автор: dizel003 18.2.2008, 15:18 | ||
Пожешь показать как сделать в проекте файл ресурсов... |
| Автор: Dronchik 18.2.2008, 17:27 | ||||||
dizel003, нажимаешь в меню файл->новый, выбираешь resource script, пишешь имя и нажимаешь ок. Далее нажимаешь на папку Header files в VS правой кнопкой и выбираешь add files to folder. Выбираешь resource.h который автоматически появился. После этого вставляешь
туда, где и стоит
чтоб получилось вот так:
Далее нажимаешь на папку Resource files в VS правой кнопкой и выбираешь add files to folder. Выбираешь resource.rc , вместо resource имя твоего ресурса. Далее нажимаешь ctrl+R? Выбираешь menu, после этого нажимаешь кнопку new. Далее добавляешь пункты в меню и сохраняешь. |
| Автор: dizel003 18.2.2008, 20:00 |
| Вот сделал пример... Тут ошибки! Но сделано в сущности так или нет? Добавлено через 3 минуты и 35 секунд Я создал в проекте в папке Resource Filуы описание переменных! |
| Автор: HumanAPI 18.2.2008, 20:30 | ||||
файл resourse.h
в файле resourse.rc пишиш
в файле Menu.cpp добавляеш #include "resourse.h" исправляеш wc.lpszMenuName= "MYMENU"; |
| Автор: dizel003 18.2.2008, 20:39 | ||||||
Спасибо Большое! Последний вопрос эти два файла создавать в проекте в папке Resource Filу? |
| Автор: HumanAPI 18.2.2008, 20:56 |
| Создавай там же где и Menu.cpp и не забудь подключить их к проекту. |
| Автор: dizel003 18.2.2008, 21:04 | ||
Господи |
| Автор: dizel003 18.2.2008, 21:37 |
| И ещё создаю в проекте в тойже папке где и программа Source Files ва документа этих но при создании второго с названием resourse.rc появляется папка и не как не пойму как в ней добавить текст! Но без этого файла работает но не показывает самого меню!))) |
| Автор: HumanAPI 18.2.2008, 21:45 |
Господи да не юзаю я VC, но там должен быть менеджер проекта древовидная структура с папками и файлами щелкаешь правой кнопкой мыши по названию проекта выбираешь Add files(или чтото подобное) и добавляешь нужный файл. |
| Автор: dizel003 19.2.2008, 07:43 |
| Если кто знает как всетаки создавать документ формата rc. Я прочитал в книжке что нужно смоздать в папке с программой текстовый документ и написать туда текст который приведён выше под названием resourse.rc... и сохранить с расшерением rc... и все должно заработать!!! Но у меня работает программа но не выводит самого меню вчем тут дело!? |
| Автор: Dronchik 19.2.2008, 13:16 | ||
|
| Автор: dizel003 19.2.2008, 19:08 |
| Подскажите что это за ошибки и как от них избавится C:\Program Files\Microsoft Visual Studio\MyProjects\Panel Instrumentov\Panel Instrumentov.cpp(52) : error C2065: 'InitToolBar' : undeclared identifier C:\Program Files\Microsoft Visual Studio\MyProjects\Panel Instrumentov\Panel Instrumentov.cpp(54) : error C2065: 'IDTB_BMP' : undeclared identifier C:\Program Files\Microsoft Visual Studio\MyProjects\Panel Instrumentov\Panel Instrumentov.cpp(196) : error C2065: 'paintstruct' : undeclared identifier Добавлено через 11 минут и 46 секунд Особенно хочется исправить вторую ошибку!!! Она в элементах управления! Вот она tbwnd=CreateToolbarEx(hwnd,WS_VISIBLE|WS_CHILD|WS_BORDER,ID_TOOLBAR,NUMBUTTONS,hInstance,IDTB_BMP,tbButtons,NUMBUTTONS,0,0,16,16,sizeof(TBBUTTON)); |
| Автор: Kanes 19.2.2008, 19:46 |
| dizel003, а что такое IDTB_BMP? Если сам писал, можно описание? |
| Автор: dizel003 19.2.2008, 20:07 |
| Чесно скажу писал не сам! С книги... И не могу спросить в институе поскольку покачто нету этого предмета! онанаписана в Создании главного окна а точнее в общих элементах управления! Есть вариант что эта надпись неправильна! Учебник может грешить |
| Автор: HumanAPI 19.2.2008, 20:21 |
| Идентификатор битового массива ресурса. (по крайней мере должен им быть). Читай справку по WinAPI |
| Автор: dizel003 19.2.2008, 21:03 | ||
Ну тогда почему ошибка на него? Добавлено через 16 секунд Буду читать! |
| Автор: Dronchik 20.2.2008, 11:36 | ||||
dizel003, учи английский. Все три ошибки говорят о том что не объявлен идентификатор.
эти числа говорят о том, в какой строчке ошибка. Исправить ошибки ты можешь, если объявишь идентификаторы. Hапример, последнюю ошибку ты можешь исправить добавлением в код, перед началом использования переменной paintstruct строчки
и также с другими идентификаторами. |
| Автор: dizel003 20.2.2008, 22:42 |
| Да да спасибо! |
| Автор: NiCketT 19.7.2008, 18:28 | ||
Чето я запутался. Не работает wc.hbrBackground=GreateSolidBrush(RGB(0,160,0)); (ошибка 'GreateSolidBrush': identifier not found). Да и консольное окно чет никуда не исчезает
|
| Автор: Dem_max 19.7.2008, 20:55 | ||||
а ты сам активизировал консоль вот этим "cout<<"Window class registered."<<endl;" попробуй так
|
| Автор: NiCketT 20.7.2008, 11:37 | ||
то же самое. Может какубто библиотеку нужно было подключить? |
| Автор: Dem_max 20.7.2008, 14:50 |
| попробуй подключи #include <wingdi.h> |