Изучение этого фрагмента кода, с объявлением буфера как LPWSTR и использованием Visual Studio 2010:
buffer = (LPWSTR)GetWindowText;
int x = GetWindowTextLength(hDlg);
Это компилируется и выполняется просто отлично (кроме того, что я должен выяснить, как обрабатывать строку, чтобы сделать ее доступной для чтения), но что еще, по крайней мере, для этих двух функций, компилятор принимает их либо с соответствующим приведением, либо с их параметрами, почему он принимает их без круглых скобок? Я не видел ничего похожего, никаких подсказок?
Когда имя функции используется в выражениях, подобных этому
buffer = (LPWSTR)GetWindowText;
то используется его адрес, который является основным выражением, преобразуется в указатель на функцию.
(LPWSTR)GetWindowText
должен быть? Вы приводите функцию (указатель) кwchar_t *
. Имейте в виду, что указанная функция также не возвращает строку.(LPWSTR)GetWindowText
выглядит как указатель на функцию