-
Eraser © (20.11.10 16:13) [0]Нужно из программы узнать, запущена ли она под 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 © (20.11.10 17:01) [2]> [1] sniknik © (20.11.10 16:45)
думаю это давно поправили (вайн весьма активно развивается, много что запускать уже можно), хотя не проверял лично. -
Сергей М. © (20.11.10 18:42) [3]
> Eraser © (20.11.10 17:01) [2]
> думаю это давно поправили
Вайн-то, каким бы он кривым не был, в этом не виноват, что поправлять-то ?)
За инициализвцию отвечает линкер, с посощью которого был собран Вайн и не только он -
Eraser © (22.11.10 03:11) [4]> [3] Сергей М. © (20.11.10 18:42)
> в этом не виноват, что поправлять-то ?)
загрузчик.