Summary: | dotNet2.0 Проблема при загрузке шрифтов | ||
---|---|---|---|
Product: | WINE@Etersoft | Reporter: | Виталий Перов <vitperov> |
Component: | dotNET; .NET; mono | Assignee: | Виталий Перов <vitperov> |
Status: | CLOSED FIXED | QA Contact: | |
Severity: | minor | ||
Priority: | P4 | CC: | lav |
Version: | 1.0.9 | ||
Target Milestone: | --- | ||
Hardware: | PC | ||
OS: | All | ||
Whiteboard: | |||
Заявки RT: | Связано с: | ||
Дата напоминания: | |||
Bug Depends on: | |||
Bug Blocks: | 1217, 1665 |
Description
Виталий Перов
2009-01-17 20:20:57 MSK
Написал тестовую программу. Выложил на /var/ftp/pub/Windows/Tests/DotNetTests/CreateFont Шрифт создаётся при помощи: Font font1 = new Font(FontFamily.GenericSerif,12.0F, FontStyle.Bold); Бактрейс падения: System.ArgumentException: Font '?' cannot be found. at System.Drawing.FontFamily.GetNativeGenericSerif() at System.Drawing.FontFamily.get_GenericSerif() at Test.Test1.Main() При отладке по каналу trace: Для шрифтов, которых нет в папке windows/Fonts: trace:font:AddFontToList Loading font file "/net/wine/bottles/dotnet/.wine-net-2.0/dosdevices/c:/windows/Fonts/vga866.fon" index 0 warn:font:AddFontToList Unable to load font "/net/wine/bottles/dotnet/.wine-net-2.0/dosdevices/c:/windows/Fonts/vga866.fon"/(nil) err = 1 trace:font:AddFontToList Loading font file "/srv/vitperov/Projects/wine-eter/loader/../fonts/vga866.fon" index 0 warn:font:AddFontToList Unable to load font "/srv/vitperov/Projects/wine-eter/loader/../fonts/vga866.fon"/(nil) err = 1 Для шрифтов, которые есть: trace:font:ReadFontDir Loading fonts from "/net/wine/bottles/dotnet/.wine-net-2.0/dosdevices/c:/windows/Fonts" trace:font:ReadFontDir Found "serife.fon" in "/net/wine/bottles/dotnet/.wine-net-2.0/dosdevices/c:/windows/Fonts" trace:font:AddFontToList Loading font file "/net/wine/bottles/dotnet/.wine-net-2.0/dosdevices/c:/windows/Fonts/serife.fon" index 0 warn:font:AddFontToList Ignoring font "/net/wine/bottles/dotnet/.wine-net-2.0/dosdevices/c:/windows/Fonts/serife.fon"/(nil) Если скопировать все виндовые растровые шрифты? Скопировал все шрифты. Ничего не изменилось Условия немного изменились: 1) В тесте зачем-то ещё подключалось System.Forms 2) Проверяю на .Net 1.1 Результаты: * При использовании встроенной gdiplus.dll падения не происходит (но корректность работы этим тестом проверить нельзя) <wine@cellar bottle dotnet/net1.1>$ wwxp test.exe fixme:shell:URL_ParseUrl failed to parse L"System.Drawing" Hello fixme:shell:URL_ParseUrl failed to parse L"System" err:ole:CoGetClassObject class {00000349-0000-0000-c000-000000000046} not registered err:ole:CoGetClassObject class {00000349-0000-0000-c000-000000000046} not registered err:ole:create_server class {00000349-0000-0000-c000-000000000046} not registered fixme:ole:CoGetClassObject CLSCTX_REMOTE_SERVER not supported err:ole:CoGetClassObject no class object {00000349-0000-0000-c000-000000000046} could be created for context 0x17 fixme:mscoree:LoadLibraryShim (0x4865f18 L"Gdiplus.dll", (nil), (nil), 0x32ea78): semi-stub fixme:ole:CoGetContextToken stub fixme:gdiplus:GdiplusNotificationHook 0x6a93370 GoodBye * При использовании сторонней gdiplus.dll программа падает. Перед падением появляется сообщение: "Failed to load resources from resource file. Please check you setup." странно, но по умолчанию загружается встроенная mscoree.dll: fixme:mscoree:LoadLibraryShim (0x4876010 L"Gdiplus.dll", (nil), (nil), 0x32e774): semi-stub загрузка сторонней ничего не меняет Нашёл проблему: использовалась gdiplus.dll, создаваемая при установке wine. Если использовать нормальную, то всё работает!!! Проверил тест на создание формы - тест запускается. Со шрифтами проблем нет. Программы .Net1.1 прекрасно запускаются. Сейчас программы .Net2.0 пока не запускаются. Но, возможно причина в неверной установке. Пока закрываю потому, что проблему со шрифтами пока не воспроизвести. Приложения .Net2.0 не запускаются, но сейчас проблема в другом. 1. Не ясно, про какой dotNET бага. 2. Не ясно, каким образом она решена, если по поводу gdiplus ничего в поставке WINE@Etersoft сделано не было. Честно говоря, не помню по какой версии .Net бага была заведена изначально. Но сейчас ситуация такая: * dotNet 1.1 - всё прекрасно работает. Баги нет. * dotNet 2.2 - багу воспроизвести не удаётся. Падает даже на самых простых программах, где не используются шрифты. Поэтому в данный момент эту багу никак не воспроизвести Проверил после закрытия баги 2666. Тестовая форма прекрасно отображается |