Форум программистов и сисадминов CyberForum.ru
Вернуться   Форум программистов и сисадминов CyberForum.ru > Форум Форум программистов > Форум C++ > Форум Visual C++
Восстановить пароль Регистрация

Ответ Создать новую тему
 
Старый 18.05.2009, 18:25   #1
reg_edit
Новичок
 
Регистрация: 02.04.2009
Сообщений: 7
Репутация: 0 (0)
Как подключить ресурс (картинку) в Visual Studio 2008 c++? / Visual C++

Добрый день.
Я совсем не могу понять как использовать ресурсы... я создал через Visual Studio файл с ресурсами (app.rc) и туда накидал картинок.... а как их в коде теперь достать ?
я пробывл через ResourceManager, но никак не пойму что ему давать в параметры, пробывал по всякому.

Может с app.rc надо сделать какуе то штуку чтоб получился app.resource ?
подскажите кто чем может.
Старый 18.05.2009, 19:36   #2
Шерсть-На-Носу
Форумчанин
 
Аватар для Шерсть-На-Носу
 
Регистрация: 30.01.2009
Сообщений: 168
Репутация: 40 (39)
Лучшие ответы: 3
Как подключить ресурс (картинку) в Visual Studio 2008 c++?

Код C++
1
2
CBitmap bitmap;
bitmap.LoadBitmap(ID_YOU_PICTURE);
Другие темы раздела Форум программистов Visual C++. Программирование с использованием Visual C++. Помощь в решении задач.
fatal error C1004: unexpected end of file found Visual C++
// Pol.cpp : Defines the entry point for the console application. // //#include "stdafx.h" #include <iostream.h> #include <math.h> double ax, ay; double bx, by; double cx, cy;
Visual C++ Двусвязный линейный список в С++
Как представить длинное число(например 145689) в виде двусвязного линейного списка. Чет не могу понять как может код выглядить в С++?
Старый 18.05.2009, 19:36  [ТС]   #3
reg_edit
Новичок
 
Регистрация: 02.04.2009
Сообщений: 7
Репутация: 0 (0)
Как подключить ресурс (картинку) в Visual Studio 2008 c++?

фух... разобрался сам.... вообщем если вдруг, кому то надо то вот список шаг к использованию ресурсов:
1. создаёте фаил *.resx ( через add new item)
2. запихиваете в него картинки которые нужны и компилируете этот фаил (правый клик мыши на него в инспекторе Solution )
3. запускаете утилиту ResGen (она в каталогах Визуал Студио валяется) с параметров файл который вы добавили в пункт 1. .....( ResGen.exe app.resx )
после этого создаться фаил с расширением *.resources
4. и далее уже в коде
ResourceManager ^resourceManager = gcnew ResourceManager(
"ХХХ.УУУ", Assembly::GetExecutingAssembly() );
где ХХХ это имя главного именного пространства, а УУУ это имя файла (без расширения) созданного на этапе 1.
5. и далее чтоб получить картинку
.... = (Bitmap^)resourceManager->GetObject("ИМЯ_КАРТИНКИ");
имена картинки чувствительны к регистру букв. Их можно задать в файле *.resx при добавление картинки или даже потом.
-----
п.с. может что то делаю лишнее но так работает, а вот с *.rc файлами у меня не получилось.
Старый 14.07.2010, 06:46   #4
Anka_gel
Новичок
 
Регистрация: 13.07.2010
Сообщений: 45
Репутация: 3 (3)
Как подключить ресурс (картинку) в Visual Studio 2008 c++?

Цитата Сообщение от reg_edit Посмотреть сообщение
3. запускаете утилиту ResGen (она в каталогах Визуал Студио валяется) с параметров файл который вы добавили в пункт 1. .....( ResGen.exe app.resx )
после этого создаться фаил с расширением *.resources
Можно ли на этом пункте по подробнее? Непонятно как эту утилитку запустить! Я ее нахожу в каталоге VS, запускаю, а она быстро мигает консолью и тут же исчезает
Старый 14.07.2010, 06:46
Google
Объявления
Старый 14.07.2010, 08:36   #5
M128K145
Форумчанин
Эксперт C++
 
Аватар для M128K145
 
Регистрация: 03.07.2009
Сообщений: 10,626
Репутация: 8151 (3373)
Лучшие ответы: 68
Как подключить ресурс (картинку) в Visual Studio 2008 c++?

Anka_gel, проверьте наличие файла *.resources в каталоге с исходниками
Программа просто запустилась, сгенерировала файл и успешно завершилась
Старый 14.07.2010, 08:52   #6
D@rkD@iver
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 853
Репутация: 108 (108)
Лучшие ответы: 1
Как подключить ресурс (картинку) в Visual Studio 2008 c++?

reg_edit, есть более простой метод
1. в конец файла *.rc добавляешь вот это
ID_MYFILE mainfile Project2.exe
ID_MYFILE1 mainfile1 Project1.dll
где Project2.exe и Project1.dll подключаемые файлы
компилируешь
2. в проге пишешь
Код C++
1
2
3
4
5
6
7
8
9
10
11
     
             HRSRC hRes;
             HMODULE hModule;
    HGLOBAL hResData;
    LPVOID lpData;
    DWORD dwSize;
             hModule = GetModuleHandle(NULL);
    hRes = ::FindResource(NULL,  _T("ID_MYFILE1"), _T("mainfile1"));
    hResData = LoadResource(hModule, hRes);
    lpData = LockResource(hResData);   
    dwSize = SizeofResource(hModule, hRes);
и у тебя будт этот файл по адрему lpData у тебя будет лежать этот файл
причем неважно какой

Добавлено через 46 секунд
потом может сохранить его в файл
Код C++
1
2
3
f= fopen("MyFile", "wb");
    fwrite(lpData, dwSize, 1, f);
    fclose(f);
Старый 14.07.2010, 09:38   #7
CyBOSSeR
Форумчанин
Эксперт C++
 
Аватар для CyBOSSeR
 
Регистрация: 06.03.2009
Сообщений: 3,676
Репутация: 2256 (1626)
Лучшие ответы: 56
Как подключить ресурс (картинку) в Visual Studio 2008 c++?

D@rkD@iver, человек на управляемом C++ под .Net пишет, а не на Win32API/MFC.
Старый 14.07.2010, 09:50   #8
D@rkD@iver
Форумчанин
 
Регистрация: 01.10.2008
Сообщений: 853
Репутация: 108 (108)
Лучшие ответы: 1
Как подключить ресурс (картинку) в Visual Studio 2008 c++?

CyBOSSeR, он хотел через rc файл
я ему показал как, и с чего ты взял что он на .NET пишет?
Старый 14.07.2010, 11:23   #9
Anka_gel
Новичок
 
Регистрация: 13.07.2010
Сообщений: 45
Репутация: 3 (3)
Как подключить ресурс (картинку) в Visual Studio 2008 c++?

Цитата Сообщение от M128K145 Посмотреть сообщение
Anka_gel, проверьте наличие файла *.resources в каталоге с исходниками
Программа просто запустилась, сгенерировала файл и успешно завершилась
о, точно!! только название странное такое! значит так: нашла файл *.resources в каталоге
проект\obj\Debug\ ну и само название файла *.resources

вызвала csc.exe, перешла в каталог проекта и выполнила:

csc /t:winexe /r:MySql.Data.dll /out:Proga.exe *.cs /res:res.resources

вроде всё работает! иконка для формы отображается!

M128K145 спасибо!

Добавлено через 5 минут
а еще мне очень помог вот этот пост! http://www.cyberforum.ru/windows-for...tml#post381925

Добавлено через 36 минут
А еще вопрос! Захожу в свойства проекта, хочу указать иконку для программы! Можно ли как-то указать ссылку на тот же, созданный мною выше, файл res.resources? пока у меня получается только сделать так, чтобы ссылка была непосредственно на файлик icon.ico, расположенный в том же каталоге, что и exe-шник
Старый 14.07.2010, 13:44   #10
M128K145
Форумчанин
Эксперт C++
 
Аватар для M128K145
 
Регистрация: 03.07.2009
Сообщений: 10,626
Репутация: 8151 (3373)
Лучшие ответы: 68
Как подключить ресурс (картинку) в Visual Studio 2008 c++? / Visual C++

Цитата Сообщение от D@rkD@iver Посмотреть сообщение
и с чего ты взял что он на .NET пишет
Хотя бы по этой строке
Код C++
1
2
ResourceManager ^resourceManager = 
    gcnew ResourceManager("ХХХ.УУУ", Assembly::GetExecutingAssembly() );
Старый 14.07.2010, 13:44
Yandex
Объявления
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать новую тему

Похожие темы
Тема Автор
C# и базы данных, ADO.NET Невозможно подключить базу данных в visual studio 2008
Помогите разобраться при добавлении источника данных у меня появляется только только объект а базы данных в окне диалога нет и сервиса тоже нет как мне настроить чтобы в диалоговом окне появлялись базы данных чтобы выбрать нужную??? везде пишут что оно должно появляться может нужно что-то...
red3000
C# .NET Подключить DirectShow в Windows Forms Application (Visual Studio 2008)
Доброго время суток. Помогите подключить DirectShow в Windows Forms Application (Visual Studio 2008, С++ Project).
-Paladin-
Разработка и тестирование Visual Studio 2008 Professional или Visual Studio 2008 Team System?
Доброго времени суток всем!!! Предстал перед дилеммой!!!:wall: Чем отличаются(если их вообще можно сравнивать) Visual Studio 2008 Professional и Visual Studio 2008 Team System??? Заранее благодарен!!! Добавлено через 47 минут Извините, выяснил...вопрос снимаю!! Если кому-то тоже будет...
VerDi
Разработка и тестирование Visual Studio 2005 и Visual Studio 2008 сильно ли они отличаются друк от друга?
привет ребята:) вот у меня есть Visual Studio 2005 и Visual Studio 2008 возник вопрос сильно ли они отличаются друк от друга? пробывал там писать под консольки (учусь я по книжке) но в книге приводятся примеры но там они у меня чето не выходят( в книге <iostream> <math> и тд но стоит мне в...
Мегатрон
Опции темы

Текущее время: 20:10. Часовой пояс GMT +4.

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.7 PL3
Copyright ©2000 - 2014, vBulletin Solutions, Inc.