Как передать нулевого указателя Win32 API в .NET C#?

Я смотрю на Функцию RegisterHotKey:

http://msdn.microsoft.com/en-us/library/ms646309 (По сравнению с 85) .aspx

BOOL RegisterHotKey(
  __in  HWND hWnd,
  __in  int id,
  __in  UINT fsModifiers,
  __in  UINT vk
);

Я использовал IntPtr передать в первом аргументе, который хорошо работает в большинстве случаев. Но теперь я должен сознательно передать нулевого указателя как первый аргумент, который IntPtr (сознательно) не сделает. Я плохо знаком с .NET, и это имеет меня озадаченный. Как я могу сделать это?

9
задан Thom Smith 7 July 2014 в 13:05
поделиться

1 ответ

Используйте IntPtr.Zero для NULL

Например:

public void Example() {
  ...
  RegisterHotKey(IntPtr.Zero, id, mod, vk);
}

[DllImportAttribute("user32.dll", EntryPoint="RegisterHotKey")]
[return: MarshalAsAttribute(System.Runtime.InteropServices.UnmanagedType.Bool)]
public static extern bool RegisterHotKey(
  IntPtr hWnd, 
  int id, 
  uint fsModifiers, 
  uint vk);
18
ответ дан 4 December 2019 в 11:41
поделиться
Другие вопросы по тегам:

Похожие вопросы: