#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-разрядный процесс.