А на Win7x64 всё равно не пашет.
По файлам доходит до чтения начинки папки lang\
Затем последний раз обращается к settings.ini
И затем падает.
<споллер>
Значит как M$ рекомендует. Забудь за это. Метод как гадать погоду по кофейной гуще.
char gosi_is_wine()
{ //Определяет, выполняется ли программа в Wine (под Linux)
//Возврат: 0 - Дос или Winsows, 1 - Linux (wine)
//также заполняет gMainCfg.Gosi_os, так что нет смысла вызывать повторно
if(gMainCfg.Gosi_os)
return (gMainCfg.Gosi_os & GOSI_OSLINUX) ? 0 : 1;
gMainCfg.Gosi_os = GOSI_OSDOS;
HMODULE module = GetModuleHandleA("ntdll.dll");
if(!module)
return 0; //<-но так себе метод, но на сегодня работает, как короткий способ.
gMainCfg.Gosi_os = GOSI_OSLINUX;
if(GetProcAddress(module, "wine_server_call"))
return 1;
if(GetProcAddress(module, "wine_get_version"))
return 1;
gMainCfg.Gosi_os = GOSI_OSWINDOWS;
return 0;
}
Это просто узнать что выполняемся мы именно на винде.
Потом можно уже пробовать GetVersionEx() в плане отличить WinXP от семёрки и десятки. И то так себе метод.
А вот как x86 от x64 отличить - особо без мыслей...Поиск wow64 в папке windows? Но короче тут погуглить надо...
Он и не может выгрузить.
Ну ладно. Хоть загрузить может
Уже достижение, в отличие от TN5.x, которая не могла. (хотя я вроде о каких-то костылях для этого где-то слышал ... *чешет тыковку*) (
так в чём тогда профит WDDM?)
Похоже нашёл:
https://vcpptips.wor...t-or-64-bit-os/
ещё вариант:
https://superuser.co...-bit-on-windows (будь готов, сайт кривой!)
см. пост NaturalBornCamper-а про PE заголовки. Соответственно чекаем kernel32.dll в папке Windows на
x86:
PE L
x64:
PE d†