Отправляет email-рассылки с помощью сервиса Sendsay
  Все выпуски  

RusFAQ.ru: Программирование на C / C++


Информационный Канал Subscribe.Ru


RusFAQ.ru: Программирование на C / C++

Выпуск № 329
от 13.08.2003, 13:20

Администратор:
Имя: Nick.Box
URL: Информационный ресурс
ICQ: 365124
[censored], [censored]
О рассылке:
Задано вопросов: 1005
Отправлено ответов: 2257
Активность: 224.5 %
[Задать вопрос >>][Регистрация эксперта >>]
[Поиск в базе][Обсудить на форуме]


 Список экспертов, ответы которых опубликованы в данном выпуске

Avl2k
Статус: Профессиональный
Общий рейтинг: 125.77
[Подробней >>]
[L2]Max
Статус: Начальный
Общий рейтинг: 116.66
[Подробней >>]
Andrew Vext
Статус: Профессиональный
Общий рейтинг: 105.16
[Подробней >>]
 
Yuri Gordienko
Статус: Профессиональный
Общий рейтинг: 117.51
[Подробней >>]


 Краткий перечень вопросов

Вопрос № 988. Дополнение к вопросу ?984 "Приведите, пожалуйста, пример, как с помощью сообщения WM_COPYDATA п... (ответов: 1)
Вопрос № 989. Добрий день! Мне нужен компилятор, который компилирует код, не зависящий от ОС! (под ДОС) Посоветуй... (ответов: 1)
Вопрос № 990. А где можно скачать компилятор C для Dos?... (ответов: 3)

Вопросов: 3, ответов: 5


 Вопрос № 988

Дополнение к вопросу ?984
"Приведите, пожалуйста, пример, как с помощью сообщения WM_COPYDATA передать другому приложению картинку BMP (именно
картинку, а не путь к ней). Среда - VC++."
Так вот, если передавать указатель на картинку, то в0 втором приложении она не отображается.
Пробовал два варианта:
1.
передача
hBitmap=(HBITMAP)::LoadImage(NULL,strName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
cds.lpData=hBitmap;
cds.dwData=5;
cds.cbData=sizeof(HBITMAP);
SendMessage(hWnd,WM_COPYDATA,(WPARAM)GetSafeHwnd(),(LPARAM)&cds);
прием
HBITMAP nBit=*(HBITMAP)pCopyDataStruct->lpData;
CDC* dc=GetDC();
CDC dcMem;
dcMem.CreateCompatibleDC(dc);
dcMem.SelectObject(hBit);
dc->StretchBlt(407,265,245,150,&dcMem,0,0,200,200,SRCCOPY);
2.
передача
BITMAP Bitmap;
hBitmap=(HBITMAP)::LoadImage(NULL,strName,IMAGE_BITMAP,0,0,LR_LOADFROMFILE);
::GetObject(hBitmap,sizeof(BITMAP),&Bitmap);
cds.lpData=&Bitmap;
cds.dwData=5;
cds.cbData=sizeof(BITMAP);
SendMessage(hWnd,WM_COPYDATA,(WPARAM)GetSafeHwnd(),(LPARAM)&cds);
прием
BITMAP bm=*(BITMAP*)pCopyDataStruct->lpData;
long n=bm.bmWidth;
HBITMAP hBit=::CreateBitmapIndirect(&bm);
CDC* dc=GetDC();
CDC dcMem;
dcMem.CreateCompatibleDC(dc);
dcMem.SelectObject(hBit);
b=dc->StretchBlt(407,265,245,150,&dcMem,0,0,200,200,SRCCOPY);
В первом приложении картинка отображается нормально. Числовые данные передаются тоже правильно.
Надеюсь на Вашу помощь, Pasha



Вопрос отправлен: 09.08.2003, 12:11
Отправитель: Pasha (note2pasha@tut.by)

[Следующий вопрос >>] [Список вопросов]

Отвечает Avl2k

Доброе время суток, Pasha!
Естественно, что не работает. В первом варианте Вы пытаетесь передать другому приложению хэндл HBITMAP, данные по которому оно не сможет прочитать (хэндлы свои для каждого процесса). Во втором варианте - указатель на память процесса (другой процесс не может просто читать данные по указателю). Чтобы передать bitmap, придется получить все его данные в виде массива и передать этот массив.
С уважением, Avl2k.

Ответ отправлен: 11.08.2003, 18:53
Отправитель: Avl2k


 Вопрос № 989

Добрий день!
Мне нужен компилятор, который компилирует код, не
зависящий от ОС! (под ДОС)
Посоветуйте, каким компилятором пользоваться и если
можно, то ссылку на етот компилятор!
Спасибо



Вопрос отправлен: 09.08.2003, 13:24
Отправитель: Madman (yo-ho@km.ru)

[Следующий вопрос >>] [Список вопросов]

Отвечает [L2]Max

Здравствуйте, Madman!
MinGW к примеру, есть и под *никс и под вин. Но вот под особенности каждой ОС тебе прийдется самому писать CRT

Ответ отправлен: 09.08.2003, 14:06
Отправитель: [L2]Max


 Вопрос № 990

А где можно скачать компилятор C для Dos?



Вопрос отправлен: 10.08.2003, 13:17
Отправитель: Кирилл

[Следующий вопрос >>] [Список вопросов]

Отвечает Andrew Vext

Добрый день, Кирилл!
По приведенным данным - никак.

Ответ отправлен: 11.08.2003, 11:57
Отправитель: Andrew Vext


Отвечает [L2]Max

Доброе время суток, Кирилл!
По яндексу ищи

Ответ отправлен: 10.08.2003, 22:18
Отправитель: [L2]Max


Отвечает Yuri Gordienko

Здравствуйте, Кирилл!
Набери в www.google.com строку "Turbo C компилятор" и нажми
на кнопку, - получишь результат
Успехов

Ответ отправлен: 10.08.2003, 14:14
Отправитель: Yuri Gordienko



Форма отправки вопроса

Внимание!
Мы рекомендуем открывать рассылку в программе Internet Explorer 5.0+ или отправлять вопросы с сайта по адресу: http://rusfaq.ru/cgi-bin/Message.cgi.

(C) 2002-2003 Команда RusFAQ.ru.

 Персональные данные

Ваше имя:

Ваш e-mail:

Опубликовать мой e-mail в рассылке


 Вопрос и дополнение

Ваш вопрос:


Приложение (если необходимо):


Получить ответов:


 Выбор рассылки

Программисту
Assembler (37)
C / C++ (29)
Perl (3)
Builder / Delphi (21)
Pascal (26)
Basic / VBA (12)
Java / JavaScript (9)
PHP (7)
Криптография (10)
WinAPI (18)
Пользователю
Windows 95/98/Me (47)
Windows NT/2000/XP (54)
"Железо" (42)
Поиск информации (27)
Администратору
Windows NT/2000/XP (29)
Linux / Unix (13)
Юристу
Гражданское право (10)
Семейное право (6)
Трудовое право (7)
КоАП (5)

Отправить вопрос всем экспертам выбранной рассылки.




Задать вопрос | Регистрация эксперта | Поиск в базе | Чат | Форумы | Новости
Проект экспертов RusFAQ.ru | Фотоальбом | Virus.RusFAQ.ru | Администрирование
Профессиональная WEB-Студия B.I.T.


Яндекс цитирования
© 2001-2003 Россия, Москва. Авторское право: Калашников О.А.

http://subscribe.ru/
E-mail: ask@subscribe.ru
Отписаться
Убрать рекламу

В избранное