Мне нужно знать, является ли данный .exe 32-разрядным или 64-разрядным до его запуска. IsWow64Process
здесь бесполезен, так как процесса еще нет. Есть ли другой API, который предоставит мне эту информацию?
Программно определить, является ли собственный .exe 32-разрядным или 64-разрядным
comment
возможный дубликат Как определить, есть ли собственный dll компилируется как x64 или x86?
- person Steve Townsend   schedule 03.11.2010
comment
Собственно, я снимаю дубликат - похоже, это намного проще для EXE, чем для DLL.
- person Steve Townsend   schedule 03.11.2010
Ответы (3)
Если вы действительно хотите сделать это только для EXE, а не DLL, просто используйте GetBinaryType.
Определяет, является ли файл исполняемым (.exe) файлом, и если да, то какая подсистема запускает исполняемый файл.
person
Steve Townsend
schedule
03.11.2010
Да, это именно то, что я хочу, и это намного проще, чем читать сам заголовок PE, как предлагали другие ответы. Спасибо.
- person JSBձոգչ; 03.11.2010
Вам повезло, что вам нужны только EXE-файлы :-) Эти сложные изменения кажутся необходимыми для того, чтобы сделать это для DLL. Пробел в Win32, имо.
- person Steve Townsend; 03.11.2010
Этот пост обязательно поможет вам.
Связан ли с C #, но он даст вам идею.
person
Liviu Mandras
schedule
03.11.2010
Эта информация доступна в одном из заголовков формата файла PE (формат, используемый для файлов EXE и DLL). Информация в этих заголовках может быть извлечена программно (они находятся с указанным смещением) или более безопасно запрошена через Win32 API.
Хорошо, Ливиу нашла для тебя правильный указатель.
person
Johannes Rudolph
schedule
03.11.2010