Страница: 1 |
Страница: 1 |
Вопрос: Сравнение UnManaged переменной c Managed
Добавлено: 04.10.12 13:22
Автор вопроса: ---Fix--- | ICQ: 348680795
Здравствуйте, есть код функции:
Public Shared Function HookCallback(ByVal nCode As Integer, ByVal wParam As IntPtr, ByVal lParam As IntPtr) As IntPtr
If nCode >= 0 AndAlso (wParam = CType(WM_KEYDOWN, IntPtr) Or wParam = CType(WM_SYSKEYDOWN, IntPtr)) Then
'...
End If
End Function
lParam указатель на переменную в неуправляемой памяти. Изменится ли что-нибудь, если вместо
написать
Пробовал и так и так. Внешних отличий нет. Может есть какие-то внутринние, т.к. эту функцию я скопировал с примера, и непойму зачем каждый раз при вызове производить преобразование?
Ответы
Всего ответов: 1
Номер ответа: 1
Автор ответа:
EROS
Вопросов: 58
Ответов: 4255
Профиль | | #1
Добавлено: 04.10.12 17:40
Это не преобразование а приведение типов.. У тебя,скорее всего, WM_SYSKEYDOWN объявлена как int или uint, а wParam имеет тип IntPtr вот и приводят к нужному типу перед сравнением.. другое дело надо ли это в данном случае? Может проще и правильнее завести константу WM_SYSKEYDOWN_INTPTR и сравнивать с нею чтоб не делать лишних преобразований при каждом чихе если это критично