Не удается получить правильный путь с помощью getsystemdirectory () на 64-битной машине - PullRequest
0 голосов
/ 25 октября 2018

У меня есть приложение, работающее под 64-битной ОС (Windows 7).Я ожидал, что GetSystemDirectory вернет "C: \ Windows \ SysWOW64" .Вместо этого он возвращает "C: \ Windows \ system32" .

Как заставить его вернуть "C: \ Windows \ SysWOW64" ?

Ответы [ 2 ]

0 голосов
/ 25 октября 2018

Я ожидал, что GetSystemDirectory вернет "C: \ Windows \ SysWOW64" .Вместо этого он возвращает "C: \ Windows \ system32" .

Как и должно быть, поскольку system32 является официальной системной папкой, даже для 32-битного приложения, работающего на64 битная винда.В этом последнем случае любые файлы, к которым 32-битное приложение пытается получить доступ в system32, автоматически перенаправляются в SysWOW64 с помощью эмулятора WOW64.Вам не нужно делать ничего особенного в вашем коде, чтобы получить такое поведение.Поэтому продолжайте использовать system32 независимо от того, является ли ваше приложение 32-битным или 64-битным.

Если вы хотите получить путь к папке SysWOW64, используйте вместо нее GetSystemWow64Directory().

0 голосов
/ 25 октября 2018
#include <Windows.h>

int main(int argv, char* args[])
{
    TCHAR sysDir[MAX_PATH];
    GetSystemWow64Directory(sysDir, MAX_PATH);

    std::cout << sysDir << std::endl;

    return 0;
 }

ВЫХОД:

C: \ Windows \ SysWOW64

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...