|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
16.01.2011, 15:30 | #1 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Проблемы с примерами книги Ю.А.Щупака в VS2008 Express Edition
Средства:
- книга "Win32 API. Эффективная разработка приложений [Ю.А. Щупак]", изд. Питер, 2007; - каталог с исходными кодами, прилагаемый к книге; - среда Visual Studio 2008 Express Edition. Проблема №1. error C2664: MessageBoxW: невозможно преобразовать параметр 2 из 'const char [20]' в 'LPCWSTR' Локализация проблемы в книге: - "Глава 1. "Hello, World" или Первые шаги к пониманию основных концепций Windows", страница 26. Создание проекта Win32 (согласно http://msdn.microsoft.com/ru-ru/library/bb384843.aspx) 1. В меню Файл последовательно выберите команды Создать и Проект.... 2. В узле Visual C++ области Типы проектов выберите Win32 (в MSDN написано CLR - видимо опечатка), а затем в области Шаблоны выберите Проект Win32. Введите имя проекта, например HelloFromMsgBox. Можно принять место размещения по умолчанию, ввести необходимое место размещения или перейти к каталогу, в который требуется сохранить проект. 3. Нажмите кнопку ОК. 4. В окне Мастер приложений Win32 нажмите кнопку Далее. 5. В окне Мастер приложений Win32 в поле Тип приложения выберите пункт Приложение Windows. В поле Дополнительные параметры выберите Пустой проект. Остальные параметры оставьте без изменений.Чтобы создать проект, нажмите кнопку Готово. Добавление необходимых файлов к проекту: 6. Скопируйте из каталога, прилагаемого к книге (Win32API->Ch_01->HelloFromMsgBox), файл: *.cpp* в каталог созданного приложения (в директорию с файлом: *.vcpoj*). 7. Добавьте в проект файл *.cpp*, в меню Проект выбрав команду Существующий элемент.... В диалоговом окне Добавление существующего элемента выберите Файл *.cpp* и нажмите кнопку Добавить. Построение решения 8. В меню Построение выберите команду Построить решение Результат построения: error C2664: MessageBoxW: невозможно преобразовать параметр 2 из 'const char [20]' в 'LPCWSTR' c:\documents and settings\observer\мои документы\visual studio 2008\projects\hellofrommsgbox\hello frommsgbox\hellofrommsgbox.cpp Решение проблемы №1: 1. В меню Проект выберите Свойства: HelloFromMsgBox. В левой области в поле Свойства конфигурации выберите Общие. В правой области в поле Набор знаков выберите Использовать многобайтовую кодировку. Нажмите кнопку ОК для сохранения изменений. 2. В меню Построение выберите команду Построить решение. 3. В меню Отладка выберите команду Запуск без отладки. |
16.01.2011, 15:44 | #2 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Проблема №2. fatal error RC1015: cannot open include file 'afxres.h'.
Локализация проблемы в книге: - "Глава 5. Ресурсы Windows-приложения", страница 260, "Листинг 5.3. Проект Russia". 1. Создайте проект Win32 (см. Создание проекта Win32, п. 1-5). Добавление необходимых файлов к проекту: 6. Скопируйте из каталога, прилагаемого к книге (Win32API->Ch_05->Russia), файлы: *.bmp*, *.cpp*, *.cur*, *.h*, *.ico*,*.rc* в каталог созданного приложения (в директорию с файлом: *.vcpoj*). 7. Добавьте в проект файлы: *.cpp*, *.h*, *.rc*, в меню Проект выбрав команду Существующий элемент.... В диалоговом окне Добавление существующего элемента выберите Файлы *.cpp*, *.h*, *.rc* и нажмите кнопку Добавить. 8. Решите проблему №1 (см. "Решение проблемы №1"). Построение решения: 9. В меню Построение выберите команду Построить решение. Результат построения: fatal error RC1015: cannot open include file 'afxres.h'. c:\Documents and Settings\Observer\Мои документы\Visual Studio 2008\Projects\Russia\Russia\Russia. rc Решение проблемы №2 (за решение проблемы - спасибо minlexx. Он там http://www.wasm.ru/forum/viewtopic.php?id=34439&p=2 даёт ссылку на программу для редактирования ресурсов): 1. Используя текстовый редактор, открыйте файл *.rc*. 2. Замените строку: #include "afxres.h" На две строки: #include <windows.h> #define IDC_STATIC -1 3. Сохраните изменения (Ctrl+S). 4. Закройте текстовый редактор (Alt+F4). 5. В меню Построение выберите команду Построить решение. 6. В меню Отладка выберите команду Запуск без отладки. |
16.01.2011, 16:00 | #3 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Проблема №3. error LNK2019: ссылка на неразрешенный внешний символ __imp__PlaySoundA@12 в функции "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) RussiaToday.obj.
Локализация проблемы в книге: - "Глава 5. Ресурсы Windows-приложения", страница 268, "Листинг 5.4. Проект RussiaToday". 1. Создайте проект Win32 (см. Создание проекта Win32, п. 1-5). Добавление необходимых файлов к проекту: 6. Скопируйте из каталога, прилагаемого к книге (Win32API->Ch_05->RussiaToday), файлы: *.bmp*, *.cpp*, *.h*, *.ico*,*.rc*,*.wav* в каталог созданного проекта (в директорию с файлом: *.vcpoj*). 7. Добавьте в проект файлы: *.cpp*, *.h*, *.rc*, в меню Проект выбрав команду Существующий элемент.... В диалоговом окне Добавление существующего элемента выберите Файлы *.cpp*, *.h*, *.rc* и нажмите кнопку Добавить. 8. Решите проблему №1 (см. "Решение проблемы №1"). 9. Решите проблему №2 (см. "Решение проблемы №2"). Построение решения: 10. В меню Построение выберите команду Построить решение. Результат построения: error LNK2019: ссылка на неразрешенный внешний символ __imp__PlaySoundA@12 в функции "long __stdcall WndProc(struct HWND__ *,unsigned int,unsigned int,long)" (?WndProc@@YGJPAUHWND__@@IIJ@Z) RussiaToday.obj Решение проблемы №3. Пожалуйста, помогите решить данную проблему. |
16.01.2011, 16:56 | #4 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
|
|
16.01.2011, 21:12 | #5 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Ура! Ура! Ура!
Мне удалось решить проблему №3!!! Решение проблемы №3. Добавить в начало файла *.cpp* (файла с главной функцией WinMain) следующую строку: Код:
|
16.01.2011, 21:52 | #6 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Прошу прощения. Предыдущее сообщение - это не решение проблемы №3. Проблема №3 всё ещё актуальна. А решил я другую проблему. Номер проблемы , её локализация в книге, воспроизведение и решение проблемы привожу далее.
Проблема №4. error LNK2019: ссылка на неразрешенный внешний символ __imp__CreateToolbarEx@52 в функции "struct HWND__ * __cdecl InitToolBar(struct HWND__ *)" Локализация проблемы в книге: - "Глава 8. Элементы управления общего назначения", страница 395, "Листинг 8.1. Проект ToolBar". 1. Создайте проект Win32 (см. Создание проекта Win32, п. 1-5). Добавление необходимых файлов к проекту: 6. Скопируйте из каталога, прилагаемого к книге (Win32API->Ch_08->ToolBar), файлы: *.bmp*, *.cpp*, *.h*, *.rc* в каталог созданного проекта (в директорию с файлом: *.vcpoj*). 7. Добавьте в проект файлы: *.cpp*, *.h*, *.rc*, в меню Проект выбрав команду Существующий элемент.... В диалоговом окне Добавление существующего элемента выберите Файлы *.cpp*, *.h*, *.rc* и нажмите кнопку Добавить. 8. Решите проблему №1 (см. "Решение проблемы №1"). 9. Решите проблему №2 (см. "Решение проблемы №2"). Построение решения: 10. В меню Построение выберите команду Построить решение. Результат построения: 1) error LNK2019: ссылка на неразрешенный внешний символ __imp__CreateToolbarEx@52 в функции "struct HWND__ * __cdecl InitToolBar(struct HWND__ *)" (?InitToolBar@@YAPAUHWND__@@PAU1@@Z ) ToolBar.obj 2) error LNK2019: ссылка на неразрешенный внешний символ __imp__InitCommonControlsEx@4 в функции _WinMain@16 ToolBar.obj 3) fatal error LNK1120: 2 неразрешенных внешних элементов C:\Documents and Settings\Observer\Мои документы\Visual Studio 2008\Projects\ToolBar\Debug\ToolBar .exe Решение проблемы №4. Добавить в начало файла *.cpp* (файла с главной функцией WinMain) следующую строку: Код:
|
17.01.2011, 01:05 | #7 | |
Старожил
Регистрация: 15.02.2010
Сообщений: 15,709
|
Цитата:
|
|
17.01.2011, 15:59 | #8 | |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
p51x, за "удочку" - большое спасибо! А "рыбка" вот она:
Решение проблемы №3. Добавить в начало файла *.cpp* (файла с главной функцией WinMain) следующую строку: Код:
http://social.msdn.microsoft.com/for...4-4AD3A915D799 Ю. А. Щупак пишет (стр. 267): Цитата:
Последний раз редактировалось 8Observer8; 17.01.2011 в 16:02. |
|
17.01.2011, 20:54 | #9 |
Старожил
Регистрация: 02.01.2011
Сообщений: 3,323
|
Скачать:
- книгу "Win32 API. Эффективная разработка приложений [Ю.А. Щупак]", изд. Питер, 2007; - каталог с исходными кодами, прилагаемый к книге. Можно здесь: http://www.intmain.ru/knigi-po-win32-api.html |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Компиляция в Visual C++ 2008 Express Edition | MacTiger | Visual C++ | 16 | 26.10.2014 20:19 |
Visual C++ 9.0 Express Edition | Pizhon | Visual C++ | 25 | 09.09.2010 19:00 |
Visual Studio 2009 Express Edition | unicode | Софт | 4 | 26.06.2009 23:15 |
Visual C++ 2008 Express Edition | Grisman | Visual C++ | 1 | 02.03.2009 20:19 |
Visual C++ 2005 Express Edition | MuRDOC | Visual C++ | 2 | 16.05.2008 16:10 |