Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Часть 3
Андрей Бешков
С момента выхода в свет первых двух статей о CrossOver Office прошло не
так уж и много времени, и я надеюсь, вы еще не забыли, что мы изучали способы,
пользуясь которыми можно довольно просто и удобно работать с
Windows-программами под управлением Linux. Если же по каким-либо причинам вы не
читали вышеупомянутых статей, то это досадное неудобство можно легко исправить,
либо найдя старые номера нашего журнала, либо посетив сайт
Надеюсь, что третьей статьей мне наконец-то удастся завершить повествование и охватить все вопросы, присланные читателями в ответ на предыдущие публикации по этой теме. Как и обещал, сегодня мы займемся изучением способов поиска неисправностей и скользких моментов, скрытых в Windows-программах и не позволяющих успешно работать со столь необходимыми нам приложениями внутри эмулятора. В дальнейшем я предполагаю, что вы умеете самостоятельно установить и произвести начальную настройку CrossOver Office. Как обычно, готовясь к любым экспериментам внутри эмулятора, лучше всего сделать резервную копию директории /cxoffice, в которой находится наш урезанный вариант Windows. В случае если что-то пойдет не так, как мы ожидаем, у нас всегда будет возможность восстановить рабочую среду простым копированием ее из архива.
В качестве первого подопытного кролика была
выбрана программа Ulead Smart Saver Pro 3.0. Она привлекла мое внимание тем,
что умеет очень хорошо оптимизировать изображения, и в то же время в ней
присутствуют практически все проблемы, с которыми можно столкнуться при
установке Windows-программ. Довольно часто файл, в котором хранится
изображение, после обработки этим приложением может похудеть без потери
качества на размер от 20 до 80 процентов первоначального объема. Несмотря на
все увеличивающееся пропускную способность интернет-каналов, такая оптимизация
способна довольно благотворно повлиять на скорость работы любого сайта.
Скачиваем дистрибутив пробной версии этого приложения здесь:
Конечно, это не смертельно, но уже заставляет насторожиться. После перехода к следующему шагу инсталляции по надписям в окне, появляющимся в момент выполнения промежуточных действий, мы видим, что дистрибутив упакован с помощью системы InstallShield.
Обнаружение данного неприятного факта не оставляет нас равнодушными. Поддержка скриптов InstallShield еще не очень хорошо реализована в эмуляторе, поэтому нам придется многие действия выполнять вручную и весьма часто прибегать к помощи шаманского бубна. Впрочем, нас это ни в коей мере не огорчает, потому что пользователи UNIX – люди к трудностям привычные. Так, шаг за шагом мы доходим до момента, когда приходится выбрать, куда именно нужно устанавливать программное обеспечение.
На следующем шаге должно начаться копирование файлов. К сожалению, этого не происходит, и на экране появляется следующая ошибка.
Теперь нужно дождаться, пока программа officesetup не завершит все работающие wine-процессы. Для того чтобы умело пользоваться возможностями отладки, встроенными в wine, нужно изучить немного добавочной теории. Отладочные сообщения могут принадлежать к любой из четырех разновидностей, называемых классами. Принадлежность к тому или иному классу определяется разработчиками wine в зависимости от того, насколько критично для нас выводимое сообщение. Давайте разберемся с каждым из этих пресловутых классов подробнее.
n FIXME – сообщения данного класса сигнализируют о том, что какое-то действие, запрошенное Windows-приложением, не выполнено. Обычно это случается в связи с тем, что реализация нужной нам функции еще не создана в wine, а вместо нее на данный момент используется пустышка, не выполняющая никаких серьезных действий. Такой тип сообщений служит напоминанием разработчикам о необходимости наконец-то закончить разработку того или иного функционала.
n ERR – к подобным сообщениям нужно относиться более серьезно, ведь они показывают наличие критических ошибок во время выполнения кода. А это значит, в процессе работы случилось что-то очень плохое. Чаще всего подробные сведения, разъясняющие, что именно произошло, следуют сразу же за этими сообщениями.
n WARN – предупреждения обычно появляются в тот момент, когда выполняемая функция еще не совершила непоправимых ошибок, но уже не может самостоятельно стопроцентно правильно выполнять все нужные действия. Такие сообщения появляются довольно редко, потому что обычно более или менее правильно написанная функция не должна впадать в панику из-за каких-то мелких нестыковок. В случае ошибок образцовая функция должна вернуть родительской функции код ошибки и предоставить вышестоящим инстанциям право решать, что именно нужно делать.
n TRACE – позволяет предоставить наиболее детализированные отчеты о ходе выполнения того или иного кода. Чаще всего полезен во время первоначальной отладки разработки новых компонентов wine, поэтому по умолчанию отключен.
n MESSAGE – сообщения, предназначенные для конечного пользователя. Так же, как и класс WARN, используется очень редко из-за своей малой полезности в повседневной жизни.
Разобравшись с классами сообщений, давайте перейдем к другому важному понятию. Каждый компонент wine имеет свой канал для вывода отладочной информации. Например, функции, отвечающие за работу с реестром, пишут отладочные сообщения в канал по имени reg, ну а те, кто выполняет действия с файлами, соответственно используют отдельный канал, называемый file. Названия остальных доступных нам каналов выглядят так же просто и понятно. К примеру, функции, занимающиеся загрузкой dll, выводят свои сообщения в канал loaddll. В общей сложности нам доступно 233 канала:
accel |
adpcm |
advapi |
animate |
aspi |
atom |
avicap |
avifile |
bidi |
bitblt |
bitmap |
cabinet |
capi |
caret |
cdrom |
cfgmgr32 |
class |
clipboard |
clipping |
combo |
comboex |
comm |
commctrl |
commdlg |
computername |
console |
crtdll |
crypt |
curses |
cursor |
d3d |
d3d_shader |
d3d_surface |
datetime |
dc |
ddeml |
ddraw |
ddraw_fps |
ddraw_geom |
ddraw_tex |
debugstr |
devenum |
dialog |
dinput |
dll |
dma |
dmband |
dmcompos |
dmfile |
dmfiledat |
dmime |
dmloader |
dmscript |
dmstyle |
dmsynth |
dmusic |
dosfs |
dosmem |
dplay |
dplayx |
dpnhpast |
driver |
dsound |
dsound3d |
edit |
enhmetafile |
environ |
event |
eventlog |
exec |
file |
fixup |
font |
fps |
g711 |
gdi |
global |
glu |
graphics |
header |
heap |
hook |
hotkey |
icmp |
icon |
imagehlp |
imagelist |
imm |
int |
int21 |
int31 |
io |
ipaddress |
iphlpapi |
jack |
joystick |
key |
keyboard |
listbox |
listview |
loaddll |
local |
mapi |
mci |
mcianim |
mciavi |
mcicda |
mcimidi |
mciwave |
mdi |
menu |
menubuilder |
message |
metafile |
midi |
mmaux |
mmio |
mmsys |
mmtime |
module |
monthcal |
mpeg3 |
mpr |
msacm |
msdmo |
msg |
mshtml |
msi |
msimg32 |
msisys |
msrle32 |
msvcrt |
msvideo |
mswsock |
nativefont |
netapi32 |
netbios |
nls |
nonclient |
ntdll |
odbc |
ole |
oledlg |
olerelay |
opengl |
pager |
palette |
pidl |
powermgnt |
|
process |
profile |
progress |
propsheet |
psapi |
psdrv |
qcap |
quartz |
ras |
rebar |
reg |
region |
relay |
resource |
richedit |
rundll32 |
sblaster |
scroll |
seh |
selector |
server |
setupapi |
shdocvw |
shell |
shlctrl |
snmpapi |
snoop |
sound |
static |
statusbar |
storage |
stress |
string |
syscolor |
system |
tab |
tape |
tapi |
task |
text |
thread |
thunk |
tid |
timer |
toolbar |
toolhelp |
tooltips |
trackbar |
treeview |
ttydrv |
twain |
typelib |
uninstaller |
updown |
urlmon |
uxtheme |
ver |
virtual |
vxd |
wave |
wc_font |
win |
win32 |
wineboot |
winecfg |
wineconsole |
wine_d3d |
winevdm |
wing |
winhelp |
wininet |
winmm |
winsock |
Winspool |
wintab |
wintab32 |
wnet |
x11drv |
x11settings |
xdnd |
xrandr |
xrender |
xvidmode |
|
|