Я использую ссылки, если мне не нужен ни один из них:
Нулевые указатели могут использоваться в качестве значения сигнальной метки, часто дешевый способ избежать перегрузки функции или использования bool.
можно сделать арифметику на указателе. Например, p += offset;
Если вам известен виртуальный адрес, по которому хранится среда, вы можете использовать OpenProcess
и ReadProcessMemory
для чтения среды из другого процесса. . Однако, чтобы найти виртуальный адрес, вам нужно порыться в блоке информации о потоке одного из потоков процесса.
Чтобы получить это, вам нужно позвонить по GetThreadContext ()
после вызова SuspendThread ()
. Но для их вызова вам нужен дескриптор потока, который можно получить, вызвав CreateToolhelp32Snapshot
с флагом TH32CS_SNAPTHREAD
для создания снимка процесса, Thread32First
], чтобы получить идентификатор первого потока в процессе, и OpenThread
, чтобы получить дескриптор потока.
С помощью утилиты:
Вы можете использовать Process Explorer .
Щелкните процесс правой кнопкой мыши, перейдите в Свойства ... и есть вкладка Environment , на которой перечислены переменные среды для этого процесса.
С кодом:
Похоже, что нет вызова Win32 API, чтобы сделать это напрямую, но, очевидно, вы получаете возиться с результатами GetProcessStrings
, чтобы получить доступ к этой информации. В этой статье CodeProject есть код, который поможет вам начать работу.