Как уже упоминалось в комментариях @NathanOliver, вы должны использовать wine_get_host_version()
для этого. Как и в случае wine_get_version()
, вам нужно использовать GetProcAddress()
, чтобы получить указатель на функцию из NTDLL. Сигнатура функции C для указателя функции будет:
void (CDECL *)( const char **sysname, const char **release )
Вы предоставляете адрес двух const char*
переменных, а wine_get_host_version()
устанавливает их для указания на две строки. Строки - это те, которые выводятся функцией системной библиотеки uname()
. (Если вы не заинтересованы в выводе, безопасно передать NULL
для этого параметра.)
Для macOS *sysname
будет установлен на "Darwin"
. Я считаю, что для Linux это будет указывать на "Linux"
. (Это было сделано на нескольких системах, которые я тестировал, но я не знаю, насколько это соответствует.)