У меня есть следующий код для загрузки значка с использованием shell32 dll. Он отлично работает на моей машине. Но одна из систем в производственной среде получила исключение: «System.ArgumentException: дескриптор Win32, который был передан значку, недействителен или является неправильным типом». Любая идея, почему мы получаем эту ошибку? Спасибо!System.ArgumentException: дескриптор Win32, который был передан значку, недействителен или неправильный тип
Public Function GetExecutableIcon() As Icon
Dim large As IntPtr
Dim small As IntPtr
ExtractIconEx(Application.ExecutablePath, 0, large, small, 1)
Return Icon.FromHandle(small)
End Function
<DllImport("Shell32")> _
Public Shared Function ExtractIconEx(ByVal sFile As String, ByVal iIndex As Integer,
ByRef piLargeVersion As IntPtr, ByRef piSmallVersion As IntPtr,
ByVal amountIcons As Integer) As Integer
End Function
функция не получает только указатель. Он получает * указатель на массив * значение * указатель на указатель *. Вам нужен массив значков, даже если он один, значок (1) –