Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Не могу подключить ресурс :(  (Прочитано 9360 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Dimyan
Гость
« : 08-03-2004 09:42 » 

создал редактором ресурса файл MyResours.resources, потом Add Existing Item -выбрал MyResours.resources (он лежит в папке моего проэкта если это важно) он стал отображаться в Solution Explorer
далие вот так
Код:
private void Form1_Load(object sender, System.EventArgs e)
{
System.Resources.ResourceManager rm = new System.Resources.ResourceManager("MyResours",this.GetType().Assembly);

//Присваеваем кнопкам фоновые рисунки
//Key1.BackgroundImage = (Image)rm.GetObject("Key1Up");
}
Компиляция проходит олично, но при дебаг запуске окошко вот с такой натписью:
Цитата
An unhandled exception of type 'System.Resources.MissingManifestResourceException' occurred in mscorlib.dll

Additional information: Could not find any resources appropriate for the specified culture (or the neutral culture) in the given assembly.  Make sure "MyResours.resources" was correctly embedded or linked into assembly "Evaluator".
baseName: MyResours  locationInfo: <null>  resource file name: MyResours.resources  assembly: Evaluator, Version=0.4.1528.28205, Culture=neutral, PublicKeyToken=null

Помогите, как быть, что я не так делаю???
« Последнее редактирование: 24-11-2007 14:38 от Алексей1153++ » Записан
Dimyan
Гость
« Ответ #1 : 10-03-2004 06:15 » 

вот так все работает:
System.Resources.ResourceManager rm = new System.Resources.ResourceManager("Evaluator.MyResource",typeof(Form1).Assembly);
т.е. наимспайс добавил перед именем файла ресурса
Записан
Алёна
Молодой специалист

ru
Offline Offline
Блондинка...


WWW
« Ответ #2 : 10-03-2004 06:19 » 




 :oops:
Записан

Стену можно пробить только головой. Все остальное орудия.
Dimyan
Гость
« Ответ #3 : 10-03-2004 06:41 » 

Алёна, какое личное сообщение, во-первых я разобрался и выложыл выше решение проблемы может комуто поможет, а во-вторых здесь форум и общее обсуждение, а не личная переписка, а подробнее я теперь и сам написать могу, вот так ресурсы подключаются и вообше делаются:

в поставке SDK Framework есть хороший редактор ресурсов, но его надо скомпелировать:
1) запускаем командную строку VisualStudio (Пуск->Программы->VS2003->VSTools->CommandPrompt)
2) переходим в ней в каталог c:\Program Files\Microsoft Visual Studio .NET 2003\SDK\v1.1\Samples\Tutorials\resourcesandlocalization\reseditor\ (юзая стандартную команду ДОС - cd)
3) в командной строке набираем build (чтобы запустить файл build.bat)
4) получаем файл ResEditor.exe юзаем и наслаждаемся простейшим созданием файлов ресурса (*.resx, *.resource)
5) сохраняем созданный нами файл ресурса в каталог нашего проекта
6) открываем проект в VS.Net и в окне Solution Explorer нажимаем кнопочку Show All Files и на нашем (появившемся в окне) файле ресурса кликнув правой клавишей выбираем Include In Project (теперь наш ресурс включен в проект)
ну а теперь его начинаем юзать, например у нас в ресур добавлена картинка с именем (не файла, а идентефикатор картинки в ресурсе) Key1Up

Код:

private void Form1_Load(object sender, System.EventArgs e)
 {
  System.Resources.ResourceManager rm = new System.Resources.ResourceManager("MyProj.MyResource",typeof(Form1).Assembly);
 
  //Присваеваем кнопкам фоновые рисунки
  Key1.BackgroundImage = (Image)rm.GetObject("Key1Up");
 }
   

обротите внимание на вот этот момент "MyProj.MyResource"
MyProj - это namespace проекта в котором вы юзаете ресурс
MyResource - это имя файла ресурса добавленного вами в проект т.е. в данном случае - MyResource.resx
« Последнее редактирование: 24-11-2007 14:40 от Алексей1153++ » Записан
Алёна
Молодой специалист

ru
Offline Offline
Блондинка...


WWW
« Ответ #4 : 10-03-2004 09:31 » 

Цитата

я теперь и сам написать могу, вот так ресурсы подключаются и вообше делаются:


А что это такое?  Что ты в них  хранил. Для чего использовал.

А то у меня был подобный вопрос (Правда в другом разделе).  Разъясни подробнее.
Записан

Стену можно пробить только головой. Все остальное орудия.
Dimyan
Гость
« Ответ #5 : 10-03-2004 13:09 » 

Конкретно в моем случае, картинки формата .BMP и видимо еще будут картинки формата .png, а вообще в ресурс можно че хочешь запихнуть, там даже формы со всеми компанентами хранятся.
Я кстатии в твоем вапросе писал что ресурсы бывают компелированные и нет, я использую не компелированный ресурс .resx данные в котором хранятся в формате XML, он все равно компилируется но автоматически при сборке всего проэкта, так же есть компелированные .resource ресурсы которые используются и создаются так же. разница есть только при компеляции через командную строку. Но это все касается конкретно C# ну или точнее сказать языков .Net
А использую я эти картинки из ресурса для самого обыкновенного украшения своей программы, типа скина Улыбаюсь
Часто ресурсы используют для мультиязычнасти и кстатии в C# это очень просто осуществляется.
Записан
Alex White
Участник

ua
Offline Offline
Пол: Мужской

« Ответ #6 : 10-03-2004 14:19 » 

Интересно, а как в ресурс добавить курсоры ? Пробовал по аналогии с VC6, но напоролся на какие-то непонятки. Сижу теперь, изучаю литературу...
Записан
Алёна
Молодой специалист

ru
Offline Offline
Блондинка...


WWW
« Ответ #7 : 10-03-2004 17:35 » 

Цитата

Сижу теперь, изучаю литературу...


Какую,
Автор, издательство.
Записан

Стену можно пробить только головой. Все остальное орудия.
Алёна
Молодой специалист

ru
Offline Offline
Блондинка...


WWW
« Ответ #8 : 10-03-2004 18:01 » 

А зачем картинки формата .BMP добавлять в файл ресурсов.

Ведь можно просто внедрить их. Или внедренные рисунки хранятся в файле ресурсов. :?:  

В чем преимущества файла ресурсов перед внедренным рисунком. Кроме количества раз обращения.
Цитата

Я кстатии в твоем вопросе писал что ресурсы бывают компелированные и нет


Я это все вставила в свою работу.

 :?  Не поняла, как ресурсы используют для мультиязычности:?:
Записан

Стену можно пробить только головой. Все остальное орудия.
Dimyan
Гость
« Ответ #9 : 11-03-2004 07:29 » 

Алёна, чтоб что то внедрить это и надо в ресурс поместить!
Для мультиязычности ресурсы применяются так (в краце):
например создается один файл ресурса MyRes.ru.resx второй MyRes.en.resx по названию можно увидеть что один локализован под использование русскоязычными второй англобуржуйскими пользователями. например в одном у нас хранится названия пунктов меню на русском во втором на английском, но названия этих компонентов ресурса одинакого, пример:
MyMenuFileName = Файл
MyMenuFileName = File
это соответственно для русского и английского.
при подключении того или иного ресурса код править не придется, а только в строке создания обьекта рессурса укажем либо так:
System.Resources.ResourceManager rm = new System.Resources.ResourceManager("MyProj.MyRes.ru",typeof(Form1).Assembly);

либо так:
System.Resources.ResourceManager rm = new System.Resources.ResourceManager("MyProj.MyRes.en",typeof(Form1).Assembly);

например это делается в настройках программы при выборе языка
и соответственно меню файл при следующем коде будет приобретать либо то либо инное название будет

MyMenu.Item[MyFileMenu].Text = rm.GetString("MyMenuFileName");
А вообще в .Net очень много более удобных возможностей по работе с локализованными ресурсами, но об этом лучше почитать в MSDN там довольно большой обьем информации
Записан
Dimyan
Гость
« Ответ #10 : 11-03-2004 07:35 » 

Alex White,  с курсором нет ни каких проблем (если тока с анимированным я просто сам не пробовал) делай по выше написанной мной инструкции, а вызывается он из ресурса тем же GetObject.
Болие того для вызова обьектов ресурса в ResourceManager вообще тока ДВА метода GetObject и GetString :!:
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines