Конференция "WinAPI" » Определить под Wine мы или нет
 
  • 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;


    Все вполне устраивает, но возможно есть какой-то более прямой вариант?
  • sniknik © (20.11.10 16:45) [1]
    под вайн-ом сталкивался с такой фигней - не инициализированные глобальные переменные не обнуляются, т.е. их значения не определены, это можно использовать... хотя это и будет не особо надежно, конечно.
  • 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)


    > в этом не виноват, что поправлять-то ?)

    загрузчик.
 
Конференция "WinAPI" » Определить под Wine мы или нет
Есть новые Нет новых   [134431   +12][b:0][p:0.001]