MS C ++ получить PID текущего процесса - PullRequest
26 голосов
/ 18 ноября 2008

Части моего приложения в C ++ под Windows. Мне нужен идентификатор процесса для текущего процесса. Какие-нибудь мысли?

Ответы [ 2 ]

40 голосов
/ 18 ноября 2008

Функция GetCurrentProcessId сделает это.

6 голосов
/ 28 января 2015

Привыкнув видеть ярды кода для выполнения, казалось бы, простых задач, я был приятно удивлен прямотой GetCurrentProcessId. Ранее сегодня я наблюдал, как он запускается в отладчике, когда следил за новым битом кода в подпрограмме DllMain, которая объединяет идентификатор процесса со встроенным GUID для создания локально уникального имени мьютекса.

Ниже приведена вся процедура, все три машинные инструкции.

mov         eax,fs:[00000018]
mov         eax,dword ptr [eax+20h]
ret

Кстати, две другие блаженно простые функции Windows API - GetLastError и SetLastError; действительно, оба очень похожи на этот.

...