Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Определить под 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]

под вайн-ом сталкивался с такой фигней - не инициализированные глобальные переменные не обнуляются, т.е. их значения не определены, это можно использовать... хотя это и будет не особо надежно, конечно.


Наверх

Титульная страница Поиск, карта сайта Написать письмо