2008-11-18 8 views
22

Части моего приложения находятся на C++ под окнами. Мне нужен идентификатор процесса для текущего процесса. Есть предположения?ms C++ получить pid текущего процесса

+0

хороший вопрос на самом деле – 2008-11-18 10:29:04

+2

Я сначала прочитал его как «избавиться от текущего процесса» :) – Otherside 2008-11-18 10:52:54

+0

@ Дружелюбие заставило меня заглянуть в словарь – SerG 2015-02-05 11:45:35

ответ

5

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

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

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

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

Смежные вопросы