Я пытаюсь использовать простой AHK DLLCall для функции API user32 CreateCaret . Я хочу, чтобы блокнот был выделен жирным шрифтом.
caretWidth := 10
NULL := 0
Ptr := A_PtrSize ? "Ptr" : "UInt" ; If A_PtrSize is not defined, use UInt instead.
WinHwnd := WinExist("A")
result := Dllcall("CreateCaret", Ptr, WinHwnd, Ptr, NULL, "Int", caretWidth, "Int", 0)
msgbox % "LE " A_lasterror ; Gives LE 0
msgbox % result ; Gives 0
Это должно быть эквивалентно следующему вызову c ++:
CreateCaret(0x37072c, NULL, 10, 0);
Умышленное искажение имени функции делает результат пустым, поэтому Я считаю, что функция вызывается правильно. Я просто не знаю, почему он не работает
Использование аналогичного кода для GetCursorBlinkRate
возвращает разумное число.
Я также пытался с caretWidth := 0
Подобные вопросы около GetLastError
- это вызовы c ++, и AHK предположительно гарантирует, что GetLastError
вызывается достаточно своевременно, чтобы убедиться, что A_lasterror установлен правильно. Почему он не показывает код ошибки, когда функция явно не работает?