![]() |
|
Модераторы: feodorv, GremlinProg, xvr, Fixin |
![]()
|
|
| FurryFreeman |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 4.12.2005 Репутация: нет Всего: нет |
Кзаалось бы, проще некуда:
hFile=CreateFile("1234.emf", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_FLAG_SEQUENTIAL_SCAN, NULL); hMapping=CreateFileMapping(hFile, NULL, PAGE_READONLY, 0, 0, "gg"); hMapping=OpenFileMapping(FILE_MAP_READ, FALSE, "gg"); HDC hdc = CreateDC("DISPLAY", NULL, NULL, NULL); PlayMetaFile(hdc,hMapping); DeleteDC(hdc); Но не работает. Причём отдельно всё работает - если метафайл открыть так: hMapping=GetMetaFile("1234.emf"); PlayMetaFile(hdc,hMapping); ..,то всё прекрасно рисуется. Можно вместо метафайла отобразить в память текстовый файл, и через Data=MapViewOfFile(hMapping, FILE_MAP_READ, 0, 0, 0); S1=LPSTR(malloc(100)); memcpy(S1, Data, 100); SetWindowText(hStatic, S1); free(S1); ...посмотреть его содержимое, то есть отображение как таковое тоже работает. Видимо ф-ции PlayMetaFile не нравится формат хэндлера hMapping, возвращаемого ф-ей OpenFileMapping.. Или я в другом месте дурак? |
|||
|
||||
| FurryFreeman |
|
|||
|
Новичок Профиль Группа: Участник Сообщений: 20 Регистрация: 4.12.2005 Репутация: нет Всего: нет |
Да, точно, OpenFileMapping возвращает хендл меппинга файла, а PlayMetaFile надо именно хендл файла.
|
|||
|
||||
| Fixin |
|
|||
![]() Ёжик ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 1357 Регистрация: 6.1.2004 Репутация: 8 Всего: 18 |
А зачем ты через маппинг передаешь файл? Передай то что просит.
|
|||
|
||||
![]()
|
| Правила форума "C/C++: Системное программирование и WinAPI" | |
|
|
На данный раздел распространяются Правила форума и Правила раздела С++:Общие вопросы . Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Chipset, Step, Fixin, GremlinProg, xvr. feodorv. |
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | C/C++: Системное программирование и WinAPI | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |