![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Определить под Wine мы или нет
Eraser © (2010-11-20 16:13:00)Нужно из программы узнать, запущена ли она под wine'ом или же в настроящей винде.
Нашел такой код
function GetWineAvail: boolean;
var H: cardinal;
begin
Result := False;
H := LoadLibrary('ntdll.dll');
if H > 0 then
begin
Result := Assigned(GetProcAddress(H, 'wine_get_version'));
FreeLibrary(H);
end;
end;
//использование
if GetWineAvail() then
ShowMessage('Ура! Мы под Винищем!')
else
ShowMessage('Чистейший Виндовз, сэр!');
end;
Все вполне устраивает, но возможно есть какой-то более прямой вариант?
Eraser (2010-11-22 03:11:00) [1]> [3] Сергей М. © (20.11.10 18:42)
> в этом не виноват, что поправлять-то ?)
загрузчик.
Сергей М. (2010-11-20 18:42:00) [2]
> Eraser © (20.11.10 17:01) [2]
> думаю это давно поправили
Вайн-то, каким бы он кривым не был, в этом не виноват, что поправлять-то ?)
За инициализвцию отвечает линкер, с посощью которого был собран Вайн и не только он
Eraser (2010-11-20 17:01:00) [3]> [1] sniknik © (20.11.10 16:45)
думаю это давно поправили (вайн весьма активно развивается, много что запускать уже можно), хотя не проверял лично.
sniknik (2010-11-20 16:45:00) [4]под вайн-ом сталкивался с такой фигней - не инициализированные глобальные переменные не обнуляются, т.е. их значения не определены, это можно использовать... хотя это и будет не особо надежно, конечно.