2015-11-18 2 views
0

Я хочу, чтобы узнать, как вы называете Windows API в Delphi. Недавно у меня возник вопрос о GetProcessorAffinity, и объявление Delphi было опубликовано как часть ответа. Я хотел бы знать, как найти такую ​​информацию.Где можно найти объявления Delphi для вызовов Windows API?

+0

Пожалуйста, обратите внимание, что три из ваших четырех вопросов были неправильно помечены, потому что они опустили общий DELPHI тег. Ваши вопросы будут иметь больше видимость, если они помечены таким образом. В каждом из трех случаев другие повторно помечены, но лучше, если вы можете пометить. –

+0

Спасибо, я запомню это. –

ответ

5

Нет функции с именем GetProcessorAffinity. Возможно, вы имеете в виду GetProcessAffinityMask. Эта функция объявлена ​​в блоке RTL Winapi.Windows. Исходный файл для этого поставляется с Delphi. Вы можете использовать CTRL + нажмите, чтобы перейти к объявлению любой функции.

Если вы делаете это с GetProcessorAffinity, то вы будете приняты к его реализации в Winapi.Windows. Теперь, что реализация выглядит следующим образом:

function GetProcessAffinityMask; external kernel32 name 'GetProcessAffinityMask'; 

Это не очень полезно, но информация, которую вы ищете, рядом. Теперь, когда вы находитесь в файле, который содержит реализацию, вы можете найти объявление. Переместитесь в начало файла и найдите GetProcessAffinityMask. Это приведет вас сюда:

function GetProcessAffinityMask(hProcess: THandle; 
    var lpProcessAffinityMask, lpSystemAffinityMask: DWORD_PTR): BOOL; stdcall; 

Это то, что вам нужно.

Многие из функций API Windows, но не все, объявляются в Winapi.Windows. Но описанный выше процесс приведет вас в нужный файл в любом случае.

Другая полезная методика - поиск в файлах. Из IDE Поиск menu select Найти в файлах. Настройка диалогового окна, как это:

enter image description here

Обратите внимание, что вам необходимо использовать путь, подходящий для вашей версии Delphi. Например, мой пример из XE7, который является версией 15, но у вас есть XE5, который является версией 12.

+0

Да, вы правы; GetProcessAffinityMask - это то, что я искал. Спасибо, что ответили на этот мирский вопрос; это будет очень полезно для меня. –

+1

В более поздних версиях Delphi (я считаю, что он поддерживается во всех версиях XE) вы можете использовать CTRL + LeftClick для любого объявления типа метода, чтобы быстро перейти к его реализации. – SilverWarior

1

Delphi поставляется по умолчанию с некоторыми Windows API в разных единицах (многие из них в Windows (WinApi.) Windows блок.

более полный перевод заголовков Windows API, можно найти в проекте Delphi Jedi Apilib.