Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.05.14;
Скачать: CL | DM;

Вниз

Нельзя ли передать приложению данные не в виде файла, а потоком   Найти похожие ветки 

 
TStas ©   (2006-04-02 23:08) [0]

ПРимер:
PlaySound("CANCEL", HINSTANCE, SND_RESOURCE); //Работающий код, здесь функции передается именно поток взятый из ресурса
А с другими приложениями так нельзя?


 
Eraser ©   (2006-04-02 23:13) [1]


> TStas ©   (02.04.06 23:08)

SND_MEMORY


 
Leonid Troyanovsky ©   (2006-04-02 23:40) [2]


> TStas ©   (02.04.06 23:08)  

> А с другими приложениями так нельзя?


Можно, если они загрузят оный ресурс, скажем, LoadLibraryEx.
Ну, или, наверное, сделают [1] из проекции файла, доступной
в другом приложении.

--
Regards, LVT.


 
Германн ©   (2006-04-03 01:29) [3]


> TStas ©   (02.04.06 23:08)  
>
> ПРимер:
> PlaySound("CANCEL", HINSTANCE, SND_RESOURCE); //Работающий
> код, здесь функции передается именно поток взятый из ресурса
> А с другими приложениями так нельзя?
>

Тут данные для функции беруться из ресурса.

А вот сабжу этот пример никак не соответствует. Даже если приложение умеет выполнять [2].


 
TStas ©   (2006-04-03 02:53) [4]

Я понимаю, что приложения по-разному с файлами обращаются. Например WSCript запросто  сделает харакири: он ОДИН раз рабрал весь код, а потом его выполняет. Ясно, что МП4 такая фишка не проойдет, но с кем-то и как-то можно передать поток. Из ресурса он загрузился, но ресурс-то в экзешнике был, разве он не поток TResourceStream?


 
Leonid Troyanovsky ©   (2006-04-03 11:33) [5]


> TStas ©   (03.04.06 02:53) [4]

> фишка не проойдет, но с кем-то и как-то можно передать поток.
>  Из ресурса он загрузился, но ресурс-то в экзешнике был,
>  разве он не поток TResourceStream?


Нет, конечно. Ресурс имеет свой формат, а TResourceStream -
это дельфийский объект, позволяющий обращаться с ним как
с потоком.

Для того, чтобы можно было воспользоваться ресурсом чужого
экзешника, нужно загрузить его себе LoadLibraryEx, ну, а,
потом попытаться использовать его хендл вместо Hinsatance.

Многие вещи, как, скажем, LoadBitmap не проходят.
Тогда можно попробывать вытащить ресурс в TMemoryStream,
а далее - SND_MEMORY.

Другие варианты передачи требуемого подразумевают
кооперацию этих приложений, например, IPC.

--
Regards, LVT.


 
TStas ©   (2006-04-03 12:53) [6]

Вот читаю книгу по виндам, только начал, но понял, что фактически приложению передается не сам файл, что непонятно что на самом  деле, а ХЕНДЛ на него - сполне внятная для виндов вещь. Вот и на STream каким-то, не знаю пока каким, образм хендл получить и его вручить приложению


 
Leonid Troyanovsky ©   (2006-04-03 18:09) [7]


> TStas ©   (03.04.06 12:53) [6]

> вещь. Вот и на STream каким-то, не знаю пока каким, образм
> хендл получить и его вручить приложению


Забудь про TStream, его не передашь.
Можно передать хендл проекции файла: DuplicateHandle + передать
значение хендла в другой процесс, а затем, уже там, MapViewOfFile
и читать оттуда, как из памяти.

Ну, или выдрать из этого экзешника требуемый ресурс (редактором
ресурсов) сохранить его в файл и прицепить его к своему приложению.

--
Regards, LVT.


 
TStas ©   (2006-04-04 19:32) [8]

То есть просто пустой поток объявить, не создаваить его и присвоитьь хендле?


 
Fay ©   (2006-04-04 20:33) [9]

2 TStas ©   (04.04.06 19:32) [8]
В смысле? >8-0


 
Германн ©   (2006-04-05 01:57) [10]


> Leonid Troyanovsky ©   (03.04.06 18:09) [7]
> Забудь про TStream, его не передашь.

Забудь также и про поток. Он тут совершенно ни при чём.
Продолжай читать книгу. Дальше может поймёшь лучше.



Страницы: 1 вся ветка

Текущий архив: 2006.05.14;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.044 c
2-1146129825
Wolferio
2006-04-27 13:23
2006.05.14
Печать файлов


3-1143097634
dolmat
2006-03-23 10:07
2006.05.14
в чем причина не обновления поля


2-1145769671
Akudza
2006-04-23 09:21
2006.05.14
Функция bintoint


3-1142501442
July
2006-03-16 12:30
2006.05.14
скопировать данные из поля с кривым именем


3-1142913265
Dyusha
2006-03-21 06:54
2006.05.14
Подстановка значений в поля