Возникла идея сделать старый виндовый проект совместимым с правильными ОС. Погонял программу - вроде всё работает, но кое где надо костылей добавить, в связи с чем и возникает сабж.
>зато есть "HKEY_LOCAL_MACHINE\Software\Wine" А у меня такого нет. Есть только "HKEY_CURRENT_USER\Software\Wine". Боюсь, что это не очень надёжно это всё окажется.
а если у пользователя стоит wine под windows? такой же ключ в родном виндовом реестре наверняка будет, а программа-то не из-под вайна будет выполняться.
как-то так:
static int running_on_wine ()
{
HMODULE module = LoadLibrary("ntdll");
FARPROC proc;
if (!module)
return 0;
proc = GetProcAddress(module, "wine_get_version");
FreeLibrary(module);
return proc != NULL;
}
зы: судя по логам, wine_get_version появилась лишь где-то в начале года. если нужна совместимость со старыми версиями wine придумай другую dll/функцию.