Есть ли какая-либо функция, которую я могу вызвать в 32-битном приложении, которое преобразует пути, которые, по его мнению, используются на и с тех путей, которые он фактически использует? (Например, вызовите его, чтобы преобразовать путь для папки в Program Files к пути в Program Files (x86) или наоборот при работе в 64-разрядной системе.) Мне нужно сделать это, чтобы, когда пользователь представленный в графическом интерфейсе (как при просмотре файлов или каталогов), он видит реальный каталог, а не то, что, по мнению самого приложения, видит.Перевод 32-битных путей на их эквиваленты WOW64
Нам необходимо поддерживать 32- и 64-разрядную Windows, поэтому это должно работать в обеих средах.
Редактировать Необходимость иметь дело с WOW64 заключается в том, что мое приложение является загрузочным приложением установщика. По умолчанию продукт устанавливается в Program Files в 32-разрядной системе, а в 64-разрядной системе - в Program Files (x86). Диалог, который позволяет пользователю выбирать, где устанавливать продукт (в том числе на другом жестком диске, если это то, что он хочет или нуждается); и он должен работать должным образом в обеих средах. В настоящее время он всегда отображает (и просматривает) программные файлы даже в 64-битных системах.
вы когда-нибудь найти хорошее решение для этого? Я столкнулся с той же дилеммой; Я хотел бы преобразовать, например, путь system32 к его эквиваленту WOW64. –
@Joe: Пока. – RobH
Я знаю, что это старо, но функция, которую вы вызываете, чтобы получить путь к файлам программ, должна возвращать «реальный» путь (т. Е. C: \ program files (x86) \ whatever). Предполагая, что вы используете SHGetFolderPath или большинство других функций Win32 API. – eselk