Специалисты! На вас последняя надежда!
От: Аноним  
Дата: 24.02.05 12:01
Оценка:
Уже 2 дня сижу над следующей проблемой: мне в С++ проекте под .Net надо картинку из ресурсов достать, да так, чтобы она не требовалась при запуске приложения, предположим с другого компа. Вот к чему я пришел:

Assembly* SampleAssembly = Assembly::GetExecutingAssembly();
Image *img = Image::FromStream(SampleAssembly->GetManifestResourceStream(XXX));

XXX — название ресурса. И тут возникает проблема! Я не могу достать его правильное название. После запуска прилоджения, вылетает:

An unhandled exception of type 'System.ArgumentException' occurred in system.drawing.dll
Additional information: 'null' is not a valid value for 'stream'.

В С# такая проблема решается просто — надо лишь выставить ресурсу свойство Embedded Resource и обращаться к нему "MyApp.image.bmp", но здесь такого нет и надо выкручиваться.. Помогите, пожалуйста
Re: Специалисты! На вас последняя надежда!
От: Аноним  
Дата: 24.02.05 12:15
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Уже 2 дня сижу над следующей проблемой: мне в С++ проекте под .Net надо картинку из ресурсов достать, да так, чтобы она не требовалась при запуске приложения, предположим с другого компа. Вот к чему я пришел:


А>Assembly* SampleAssembly = Assembly::GetExecutingAssembly();

А>Image *img = Image::FromStream(SampleAssembly->GetManifestResourceStream(XXX));

А>XXX — название ресурса. И тут возникает проблема! Я не могу достать его правильное название. После запуска прилоджения, вылетает:


А>An unhandled exception of type 'System.ArgumentException' occurred in system.drawing.dll

А>Additional information: 'null' is not a valid value for 'stream'.

А>В С# такая проблема решается просто — надо лишь выставить ресурсу свойство Embedded Resource и обращаться к нему "MyApp.image.bmp", но здесь такого нет и надо выкручиваться.. Помогите, пожалуйста


Ну неужели никто из вас мне не может помочь???
Re[2]: Специалисты! На вас последняя надежда!
От: Воронков Василий Россия  
Дата: 24.02.05 12:26
Оценка:
Здравствуйте, Аноним, Вы писали:

В МС++ я помню как-то похитрее с манагед ресурсами, чем в до-диезе, но как и в чем хитрость — не помню Самое простое — посмотри манифест сборки ил-дасмом и узнаешь полное имя нужного тебе ресурса.
Re[3]: Специалисты! На вас последняя надежда!
От: Аноним  
Дата: 24.02.05 12:38
Оценка:
Здравствуйте, Воронков Василий, Вы писали:

ВВ>Здравствуйте, Аноним, Вы писали:


ВВ>В МС++ я помню как-то похитрее с манагед ресурсами, чем в до-диезе, но как и в чем хитрость — не помню Самое простое — посмотри манифест сборки ил-дасмом и узнаешь полное имя нужного тебе ресурса.


Пытался, но там не нашел ничего, что касается полных названий ресурсов.. Будь добр, вспомни ту хитрость, я в полном отчаянии!!
Re[4]: Специалисты! На вас последняя надежда!
От: TK Лес кывт.рф
Дата: 24.02.05 18:23
Оценка:
Hello,

> ВВ>В МС++ я помню как-то похитрее с манагед ресурсами, чем в до-диезе, но как и в чем хитрость — не помню Самое простое — посмотри манифест сборки ил-дасмом и узнаешь полное имя нужного тебе ресурса.

>
> Пытался, но там не нашел ничего, что касается полных названий ресурсов.. Будь добр, вспомни ту хитрость, я в полном отчаянии!!

Смотри раздел в MSDN: /ASSEMBLYRESOURCE (Embed a Managed Resource)
Posted via RSDN NNTP Server 2.0 alpha
Если у Вас нет паранойи, то это еще не значит, что они за Вами не следят.
Re[3]: Специалисты! На вас последняя надежда!
От: Аноним  
Дата: 24.02.05 12:52
Оценка: -2
Здесь нет (практически) людей, хотя бы немного работающих с MC++.NET.

Некоторые крутые дядьки вообще считают поддержку Ц++ дотнетью — наиглупейшей вещью, которую когда-либо делало МС, да и огромнейшей дырой в платформе. Если помнишь, все дыры (buffer-overflow) находят в прогах, писаных на Ц/ЦПП.

ЗЫ: флаг, барабан, бронепоезд. честно. от всей души.

Real programmers don't comment their code.
If it was hard to write, it should be hard to understand.


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[3]: Специалисты! На вас последняя надежда!
От: Аноним  
Дата: 24.02.05 13:30
Оценка:
> ВВ>В МС++ я помню как-то похитрее с манагед ресурсами, чем в до-диезе, но как и в чем хитрость — не помню Самое простое — посмотри манифест сборки ил-дасмом и узнаешь полное имя нужного тебе ресурса.
Пытался, но там не нашел ничего, что касается полных названий ресурсов.. Будь добр, вспомни ту хитрость, я в полном отчаянии!!

см.
http://www.gotdotnet.ru/Forums/CommonForum/119246.aspx


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
RE: Специалисты! На вас последняя надежда!
От: Аноним  
Дата: 24.02.05 13:36
Оценка:
"MyApp.image.bmp", но здесь такого нет и надо выкручиваться.. Помогите, пожалуйста
попробуй отратиться к нему не как "MyApp.image.bmp", а как "http://myapp/виртуальный_каталог_с_картинкой/image.bmp"
С уважением, Max Pro.
Есть многое на свете, друг Горацио, что непонятно нашим мудрецам.
Программисты всех стран, соединяйтесь!


данное сообщение получено с www.gotdotnet.ru
ссылка на оригинальное сообщение
Re[4]: Специалисты! На вас последняя надежда!
От: Павел Кузнецов  
Дата: 25.02.05 17:25
Оценка:
BlackTigerAP,

> Некоторые крутые дядьки вообще считают поддержку Ц++ дотнетью — наиглупейшей вещью, которую когда-либо делало МС


Это эмоции.

> да и огромнейшей дырой в платформе.


В таком случае эти дядьки просто не разобрались в том, о чем говорят.

> Если помнишь, все дыры (buffer-overflow) находят в прогах, писаных на Ц/ЦПП.


На C++/CLI можно будет писать полностью верифицируемый код, с теми же гарантиями относительно отсутствия записи за пределами объекта, что и, скажем, в C#. Платформа изолирует себя от подобных "дыр" не тем, что запрещает те или иные языки, а тем, что имеет возможность верифицировать код, когда это имеет значение. В частности, можно писать и на MSIL, в котором возможностей выстрелить себе в ногу уж никак не меньше, чем в MC++ или C++/CLI.
Posted via RSDN NNTP Server 2.0 alpha
Легче одурачить людей, чем убедить их в том, что они одурачены. — Марк Твен
Re[3]: Специалисты! На вас последняя надежда!
От: Harley_D Россия www.digicreatures.com
Дата: 25.02.05 20:53
Оценка:
>
> В МС++ я помню как-то похитрее с манагед ресурсами, чем в до-диезе, но как
> и в чем хитрость — не помню Самое простое — посмотри манифест сборки
> ил-дасмом и узнаешь полное имя нужного тебе ресурса.


Да ничего там не хитрее — надо залезть в ILDASM, Reflector, Spices.Net — в
любой доступный броузер сборок и посмотреть реальное имя ресурса в Managed
Resources и это имя юзать. В случае изменения namespace или перемещения
графики в другой каталог начинаются геморы. Хотя это конечно очень редко
бывает, но очень неприятно — надо об это помнить.
Я вообще проще делаю — храню графику (конечно ту что небольшая) как byte[] и
когда надо загружаю в MemoryStream а дальше Image.FromStream. Попроще будет.
Как вариант подойдет и работа со "своим" resx или Xml.

--
Best regards,
Harley_D
Posted via RSDN NNTP Server 1.9
Best Regards,
Harley
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.