Как мне переопределить dll (без использования winecfg gui) в WINE?

Я что-то сломал в своем winecfg. Таким образом, он больше не будет запускать приложения для Windows в Wine. (Я не могу позволить себе mv .wine и переустановить).

Как мне переопределить dll с помощью командной строки. Я случайно отключил rpcrt4.dll и хочу отменить его.

При запуске winecfg или любого приложения Windows, такого как MS Word, Wine печатает это сообщение об ошибке:

err:module:import_dll Library rpcrt4.dll (which is needed by L"C:\\windows\\system32\\explorer.exe") not found
2
задан 10 April 2013 в 20:31

1 ответ

Во-первых, попробуйте использовать winetricks в командной строке, чтобы вернуть только ваши настройки winecfg dll к значениям по умолчанию:

winetricks alldlls=default

Если , это не решает проблема, вы можете использовать WINEDLLOVERRIDES; это переменная окружения, которую можно использовать с wine для указания переопределений dll, которые вы хотите (или не требуете). Как указано на man-странице , WINEDLLOVERRIDES

Определяет тип переопределения и порядок загрузки dll, используемых в процессе загрузки для любой dll. В настоящее время существует два типа библиотек, которые могут быть загружены в адресное пространство процесса: собственные библиотеки Windows (собственные), внутренние библиотеки DLL (встроенные). Тип может быть сокращен первой буквой типа (n, b). Библиотека также может быть отключена (''). Каждая последовательность заказов должна быть разделена запятыми.

Вы можете либо экспортировать переменную среды, либо использовать env и указать переменную, которая будет использоваться с командой wine (если вы не укажете WINEPREFIX, она будет использовать значение по умолчанию):

env WINEDLLOVERRIDES="rpcrt4=b,n" wine exe_to_run

Это будет указывать, что встроенная версия должна быть опробована, а затем собственная версия. Если вместо этого вы используете "rpcrt4=", то эта DLL останется отключенной, а wine не будет работать вообще.

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

export WINEDLLOVERRIDES="rpcrt4=b,n" 

Это не повлияет на настройки в winecfg, и они останутся такими же. Эта переменная окружения и многие другие полезные, доступные с wine, являются только временными и просто влияют на оболочку, в которой они используются, либо путем экспорта переменной, либо каждый раз используя env для определения состояния переменной и затем запуска wine с этой переменной, когда она запускает вашу программу. Вы также можете указать переменные окружения в скрипте bash, который запустил ваши программы wine.

Дополнительную информацию см. В man wine, онлайн-руководствах по Ubuntu и FAQ по полезному вину .

0
ответ дан 10 April 2013 в 20:31

Другие вопросы по тегам:

Похожие вопросы: