Как я мог написать программу, которая имеет другую версию бит части?

#c

#c

Вопрос:

Я пишу сканирование dll в запущенном процессе, 64 bit OS используя создание моментального снимка и просмотр процессов. Он отлично работал для 64-битного процесса, но для 32-битного процесса он не мог сделать это идеально. Итак, у меня есть идея:

 If Running_process_is_32_bit
   Scan_DLL_32bit_version
else 
   scan_DLL_64bit_version
  

Я знаю, что есть способ справиться с этим — создать две программы для каждой задачи. Но могу ли я сделать это только с помощью программы? Если можно, как это сделать?
Спасибо!

Комментарии:

1. DLL — это все 32 или все 64 бита, поэтому у вас будет 2 библиотеки DLL. То же самое касается приложения.

2. @drescherjm Когда я использовал этот 64 bit version 32 bit процесс сканирования программы, некоторые dll были пропущены. Когда я использовал этот 32 bit version 32 bit процесс сканирования программы, все dll были обнаружены.

3. Один из способов — использовать #ifdef в вашем коде, чтобы сделать что-то другое для вашей 64-разрядной библиотеки dll scan, чем для 32-разрядной библиотеки dll scan.

4. @drescherjm Итак, мне все еще нужны две библиотеки DLL 2?

5. ДА. Потому что у вас не может быть 32-битного кода в 64-битной dll или viseversa. И 64-разрядная dll не будет загружена в 32-разрядный процесс, а 32-разрядная не будет загружена в 64-разрядный процесс.