GetWindowText и GetWindowTextLength работают без скобок?

0

Изучение этого фрагмента кода, с объявлением буфера как LPWSTR и использованием Visual Studio 2010:

        buffer = (LPWSTR)GetWindowText;
        int x = GetWindowTextLength(hDlg);

Это компилируется и выполняется просто отлично (кроме того, что я должен выяснить, как обрабатывать строку, чтобы сделать ее доступной для чтения), но что еще, по крайней мере, для этих двух функций, компилятор принимает их либо с соответствующим приведением, либо с их параметрами, почему он принимает их без круглых скобок? Я не видел ничего похожего, никаких подсказок?

  • 4
    Что такое (LPWSTR)GetWindowText должен быть? Вы приводите функцию (указатель) к wchar_t * . Имейте в виду, что указанная функция также не возвращает строку.
  • 0
    (LPWSTR)GetWindowText выглядит как указатель на функцию
Показать ещё 12 комментариев
Теги:
winapi

1 ответ

4

Когда имя функции используется в выражениях, подобных этому

buffer = (LPWSTR)GetWindowText;

то используется его адрес, который является основным выражением, преобразуется в указатель на функцию.

  • 0
    Так что это просто указатель, он не запускает функцию ..
  • 1
    @ user3079666 Да, это просто указатель, приведенный к LPWSTR.
Показать ещё 10 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню