Re[8]: Как получить IntPtr на файл ресурса ???
От: Pavel Dvorkin Россия  
Дата: 04.06.10 09:29
Оценка:
Здравствуйте, Аноним, Вы писали:

А>Я передавал туда числа и использовал всевозможные варианты UpdateResource, но толку нет. Мы тут в другом топике уже родили, что managet-ресурсы видимо, именно ВИДИМО, т.к. ни чего конкретного ни кто не сказал, не удастся править managet-ресурсы функциями WinAPI. Хотя вроде как .exe файл создаваемый VS, должен быть PE-файлом, т.е. правиться UpdateResource. Хочешь попробуй, здесь
Автор:
Дата: 03.06.10
точно описан порядок проведенного эксперимента.


Похоже, что да. PE-фацл тут ни при чем — в нем ничего не говорится, какие секции должны в нем быть.

Классическая секция ресурсов в неуправляемых Win32 PE называется .rsrc. В управляемых PE она есть (запусти dumpbin), но, похоже, embedded resources попадают не туда, а в секцию .text. Почему так — спроси MS.
With best regards
Pavel Dvorkin
Re[8]: Как получить IntPtr на файл ресурса ???
От: Андрей Россия  
Дата: 04.06.10 09:50
Оценка: +1
Здравствуйте, Аноним, Вы писали:

skip

чего тут пробовать-то?
я вроде ясно тебе написал еще пару дней назад (да и другие знающие люди тоже это говорили), что Win32 ресурсы не имеют ничего общего с .NET ресурсами (кроме схожего названия и назначения)
соответственно, бесполезно пытаться работать с .NET ресурсами через Win32 API (и наоборот)

так что не знаю, зачем ты продолжаешь биться головой о стену
Re[4]: Как получить IntPtr на файл ресурса ???
От: SaZ  
Дата: 04.06.10 12:12
Оценка:
Здравствуйте, Pavel Dvorkin, Вы писали:

PD>Хоть XML, хоть бинарник путем сериализации — как насчет произвольного доступа ? Win32 ресурсы — это ведь по сути библиотека ресурсов, в которых есть разные их типы, а для каждого типа может быть несколько ресурсов, и при этом всегда можно вытащить только тот ресурс, который нужен. Остальные даже не загружаются


Offtop: Да, особенно просто решается тривиальная задача выгрузки .bmp или строк из ресурса в файл.
Re[5]: Как получить IntPtr на файл ресурса ???
От: Pavel Dvorkin Россия  
Дата: 04.06.10 12:51
Оценка:
Здравствуйте, SaZ, Вы писали:

SaZ>Здравствуйте, Pavel Dvorkin, Вы писали:


PD>>Хоть XML, хоть бинарник путем сериализации — как насчет произвольного доступа ? Win32 ресурсы — это ведь по сути библиотека ресурсов, в которых есть разные их типы, а для каждого типа может быть несколько ресурсов, и при этом всегда можно вытащить только тот ресурс, который нужен. Остальные даже не загружаются


SaZ>Offtop: Да, особенно просто решается тривиальная задача выгрузки .bmp или строк из ресурса в файл.


Offtop так offtop

В начале 90-х заказали мне написать электронный учебник по теории вероятности. Интернета в Омске тогда не было, и про HTML я ничего не знал. Знал бы — наверное, хватило бы наглости написать свой броузер с HTML , но поскольку я не знал, то придумал свой язык разметки гипертекста, который ни за что не покажу сейчас никому . Написал гипертекстовую систему с двумя фреймами (для основного текста и для примеров), всплывающими окнами (для определений), закладки, историю вперед-назад и т.д. В общем, мне и сейчас не стыдно за то, что я тогда сделал, тем более. что делалось это на чистом Win16, потому что MFC тогда у нас не было и я про нее тоже не знал (а писал под BC 3.1, потом под BC 4.5 переводил в Win32).

И возник вопрос — где тексты хранить ? А также картинки. База данных — я и сейчас бы не стал, потому что в применении к этому учебнику прицепить даже Access или тогдашний Paradox/FoxPro — все равно, что к велосипеду пристроить ракетный двигатель. Хранить в виде текстовых файлов — так их несколько сот, а вдруг какой-то удалят по ошибке (а то и хуже — отредактируют ), мне что, проверять на целостность весь набор файлов ? Подумал я и слепил из них DLL с ресурсами нестандартного вида. Дальше все просто — FindResource, LoadResource, LockResource, SizeOfResource, и вот он у тебя как на ладони. А картинки еще проще — LoadBitmap и все.

Так что ресурсы Win API — дело хорошее. Зачем их убрали в .Net — понять не могу.
With best regards
Pavel Dvorkin
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.