Вызов функции API из DINPUT.Dll с использованием Delphi или Pascal - PullRequest
0 голосов
/ 11 января 2012

У меня есть программа, которая использует API из dinput.dll (прямой ввод), я наблюдаю за ним, и результат таков:

Имя API: DirectInputCreateEx Имя модуля: C: \ Windows \ system32 \DINPUT.dll

И о другой программе, которая использует прямой ввод:

Имя API: DirectInputCreateA Имя модуля: C: \ Windows \ system32 \ DINPUT.dll

Этот API будетобновите этот раздел реестра:

HKEY_CURRENT_USER \ System \ CurrentControlSet \ Control \ MediaProperties \ PrivateProperties \ DirectInput

Я хочу знать, как я могу использовать Delphi для написания кода, который ТОЛЬКО вызывает этот API для DirectInputDLL?

Любая помощь очень ценится ...

1 Ответ

1 голос
/ 11 января 2012

Чтобы вызвать прямой ввод, вам потребуется перевод заголовочного файла на Delphi.Насколько мне известно, лучший такой перевод доступен на графических страницах Clootie .

Вам необходимо использовать перевод заголовка DirectInput.pas.

Что касается написанияПрограмма, которая не показывает окно, вот самый простой шаблон:

program MyProgram;
begin
  //write your program's code here
end.

В комментарии вы утверждаете, что единственная функция, которую вы хотите вызвать, это DirectInputCreateEx.Для вызова этой функции вам нужно следующее объявление импорта:

function DirectInputCreateEx(hinst: THandle; dwVersion: DWORD; 
  const riidltf: TGUID; out ppvOut; punkOuter: IUnknown): HResult; 
  stdcall; external 'dinput.dll';
...