IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

ExtractIconA n'extrait rien :'(


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 40
    Par défaut ExtractIconA n'extrait rien :'(
    Bonsoir à tous,

    JE tente de récupérer la première icone du fichier avec le code ci-dessous...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    Private Declare Function ExtractIcon Lib "shell32.dll" Alias "ExtractIconA" (ByVal hInst As Long, ByVal lpszExeFileName As String, ByVal nIconIndex As Long) As Long
        Function test()
            Dim mCompositeImage As Image
            Dim hIcon As Long = ExtractIcon(0, "C:\WINDOWS\SYSTEM\SHELL32.DLL", 0)
            'ShowIcon("C:\WINDOWS\SYSTEM\SHELL32.DLL", 0, PictureBox1, 0, 0)
            Try
                Dim mIcon As System.Drawing.Icon = System.Drawing.Icon.FromHandle(hIcon)
                mCompositeImage = mIcon.ToBitmap
            Catch ex As Exception
                ' create a blank black bitmap to return
                mCompositeImage = New Bitmap(16, 16)
            End Try
            ' return the composited image
            Return mCompositeImage
        End Function
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            test()
        End Sub
    quand j'exécute vb me retourne ce pb :
    A call to PInvoke function 'test!test.Form1::ExtractIcon' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.
    je n'ai quasi plus de cheveux à cose de ce problème ^^
    pourriez vous m'aider ?

    Merci d'avance.

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    déjà, mettre l'option Strict sur On dans les propriétés du projet.
    Ensuite j'ai copié la déclaration de l'Api ici.
    J'ai modifié le chemin, sous XP SHELL32.dll est sous system32.
    Et ton code va bien chez moi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
     
            PictureBox1.Image = test()
        End Sub
     
        <Runtime.InteropServices.DllImport("shell32.dll")> _
    Private Shared Function ExtractIcon(ByVal hInst As IntPtr, ByVal lpszExeFileName As String, ByVal nIconIndex As Integer) As IntPtr
        End Function
        Function test() As Image
            Dim mCompositeImage As Image
            Dim hIcon As IntPtr = ExtractIcon(IntPtr.Zero, "C:\WINDOWS\SYSTEM32\SHELL32.DLL", 16)
            Try
                Dim mIcon As System.Drawing.Icon = System.Drawing.Icon.FromHandle(hIcon)
                mCompositeImage = mIcon.ToBitmap
            Catch ex As Exception
                ' create a blank black bitmap to return
                mCompositeImage = New Bitmap(16, 16)
            End Try
            ' return the composited image
            Return mCompositeImage
        End Function

  3. #3
    Membre averti
    Inscrit en
    Mai 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 40
    Par défaut
    Merci merci merci !

    mes cheveux vont repousser !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [ jointure externe ] j'y pompe rien
    Par jaimepasteevy dans le forum Langage SQL
    Réponses: 3
    Dernier message: 16/12/2003, 17h57
  2. Réponses: 8
    Dernier message: 04/09/2003, 16h07
  3. Ne rien afficher
    Par rockbiker dans le forum DirectX
    Réponses: 3
    Dernier message: 20/05/2003, 18h02
  4. [debutante] [JDBComboBox]rien à l'affichage
    Par Lina dans le forum JBuilder
    Réponses: 3
    Dernier message: 22/11/2002, 13h31

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo