Déclarer une librairie dans visual basic 2008

Résolu
Noob2008 Messages postés 5 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011 - 31 déc. 2011 à 09:36
Noob2008 Messages postés 5 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011 - 31 déc. 2011 à 16:28
Bonjour,

Je passe actuelement de visual basic 6 à visual basic 2008 et je n'arrive pas à déclarer mes librairies.
Anciennement sur VB6 je faisais de cette manière :

Public Declare Function ShowWindow Lib "user32" (ByVal hWnd As Long, ByVal nCmdShow As Long) As Long

Comment fait t'on sous VB2008 ?

Merci

8 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 déc. 2011 à 12:34
1) Les structures sous vb.Net ne s expriment pas comme sous VB6 (des "types"), mais comme ce qu elles sont (des "structures")
2) ses elements sont a typer en Integer et non en Long ==== >>>
Ce devrait donc, en toute logique, etre :
Public Structure POINTAPI
  Dim X As Integer
  Dim Y As Integer
End Structure

Mais verifie donc dans MSDN, toi qui a VB.Net , comment on exprime une structure ...
Moi, je vais a la peche, maintenant (on m attend)




____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 déc. 2011 à 10:47
bonjour,

je ne connais personnellement rien (ou presque) de VB.Net. Je sais seulement qu il faut typer en integer ce qui, sous vb6, l est en long.

Je crois par ailleurs savoir que sous vb.net, tu peux faire du genre :
<System.Runtime.InteropServices.DllImport("user32.dll")> _
Private Shared Function ShowWindow( _
        ByVal hWnd As System.IntPtr, _
        ByVal nCmdShow As Integer) As Integer
End Function

ou encore utiliser pinvoque pour declarer ta fonction showwindow de la librairie user32

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Noob2008 Messages postés 5 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011
31 déc. 2011 à 10:57
Je vient juste de m'aperçevoir que l'erreur n'était pas à cette ligne (Ne connaisant pas encore VB2008 je pensais que ce qui était écrit en rouge, était une erreur).

Mon erreur vient donc de la déclaration d'un nouveau type de variable. Je faisais comme ca sous VB6 :

Public Type POINTAPI
X As Long
Y As Long
End Type
Public MousePos As POINTAPI

J'imagine qu'il est possible de crée un nouveau type de variable aussi sur VB2008. Comment fait-on ?
Il me semblait qu'il éxistait un aide sur un site pour les anciens utilisateur de VB6. Du genre on met un morceau de code VB6 et ca nous donne l'équivalant sous VB2008 ca vous dit quelque chose ?
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 déc. 2011 à 11:05
Je te l ai dit plus haut :
Ne type pas en long sous VB.Net


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Noob2008 Messages postés 5 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011
31 déc. 2011 à 11:42
Non apparament cela ne vient pas des déclarations en long c'est vraiment le "Public Type" qu'il ne veut pas doit y avoir une autre facon de faire sous VB2008 mais je ne trouve rien sur l'aide msdn.
0
Noob2008 Messages postés 5 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011
31 déc. 2011 à 14:27
Merci de ton aide ucfoutu. Donc oui effectivement c'est bien les "Structure" qui remplace les "type".

Tout ca pour utilisé l'instruction GetCursorPos() de la librairies "User32" met maintenant elle me revoie les coordonnées de la souris à Zéro en abscisse et en ordonnée. Dûr dûr le passage du vieux vb au recent ^^. Je met mon bout de code des fois que tu ai une idée (J4ai aussi essaié en changant les variables long par integer mais cela ne change rien.


Public Declare Function GetCursorPos Lib "user32" (lpPoint As POINTAPI) As Long

Public Structure POINTAPI
X As long
Y As Long
End Structure
Public MousePos As POINTAPI

Private Sub Accueil_MouseMove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseMove
GetCursorPos (MousePos)
textbox1 = MousPos.X
textbox2 = MousPos.Y
end sub

                
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
31 déc. 2011 à 16:18
Je n en sais a vrai dire rien (je ne suis pas VBNettiste, moi).

Mais :
1) j essaierais instinctivement ceci :
- pour declarer la fonction :

Declare Function GetCursorPos Lib "user32.dll" (ByRef lpPoint As POINT_API) As Boolean

- pour declarer la structure :

Public Structure POINT_API
        Public X As Integer
        Public Y As Integer
    End Structure


2) ceci etant dit, je jurerais que ce n est la qu une "adaptation" de VB6 et que VB.Net devrait t offrir autre chose (du tout cuit). Dans cet esprit, je chercherais a ta place a voir ce qu est, par exemple, Control.MousePosition, tel qu expose ici :
Tapez le texte de l'url ici.
car, d instinct, je me dis que c est preferable. Non ?
____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Noob2008 Messages postés 5 Date d'inscription samedi 31 décembre 2011 Statut Membre Dernière intervention 31 décembre 2011
31 déc. 2011 à 16:28
Oui tu a raison il y avait éffectivement quelque chose de tout prêt à utilisé. Cursor.Position.X qui te donne directement la position X de la souris et de même Cursor.Position.Y pour le position Y ^^.

Merci encore.
0
Rejoignez-nous