Прежде чем спросить, я видел ту же проблему и вопрос в этой статье С#, она сообщает, что вызывает ложный позитив в инструменте анализа кода, но не говорит, как решить проблему, и именно поэтому я прошу.
У меня есть эти объявления API:
<DllImport("user32.dll", EntryPoint:="GetWindowLong", CharSet:=CharSet.Auto)>
Friend Shared Function GetWindowLong32(
ByVal hWnd As HandleRef,
<MarshalAs(UnmanagedType.I4)> ByVal nIndex As WindowAttributes
) As Integer
End Function
<DllImport("user32.dll", EntryPoint:="GetWindowLongPtr", CharSet:=CharSet.Auto)>
Friend Shared Function GetWindowLong64(
ByVal hWnd As HandleRef,
<MarshalAs(UnmanagedType.I4)> ByVal nIndex As WindowAttributes
) As Long
End Function
Когда я GetWindowLongPtr
инструмент анализа кода, он не может найти точку GetWindowLongPtr
функции GetWindowLongPtr
.
У меня VS2013 Ultimate, я компилирую для x64, и я прочитал эту статью из MSDN.
Существует официальный способ решить эту проблему без подавления сообщения об ошибке в инструменте анализа кода?
Это устраняет CS-сообщение/флаг, но вам нужно будет проверить, работает ли он по-прежнему (я не могу придумать тестовый пример):
<DllImport("user32.dll", EntryPoint:="GetWindowLongA", CharSet:=CharSet.Ansi)>
Friend Shared Function GetWindowLong64(
ByVal hWnd As HandleRef,
<MarshalAs(UnmanagedType.I4)> ByVal nIndex As WindowLongFlags
) As Long
End Function