Déclarer une librairie dans visual basic 2008 [Résolu]

Noob2008 5 Messages postés samedi 31 décembre 2011Date d'inscription 31 décembre 2011 Dernière intervention - 31 déc. 2011 à 09:36 - Dernière réponse : Noob2008 5 Messages postés samedi 31 décembre 2011Date d'inscription 31 décembre 2011 Dernière intervention
- 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
Afficher la suite 

8 réponses

Répondre au sujet
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 31 déc. 2011 à 12:34
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 31 déc. 2011 à 10:47
0
Utile
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
Commenter la réponse de ucfoutu
Noob2008 5 Messages postés samedi 31 décembre 2011Date d'inscription 31 décembre 2011 Dernière intervention - 31 déc. 2011 à 10:57
0
Utile
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 ?
Commenter la réponse de Noob2008
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 31 déc. 2011 à 11:05
0
Utile
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
Commenter la réponse de ucfoutu
Noob2008 5 Messages postés samedi 31 décembre 2011Date d'inscription 31 décembre 2011 Dernière intervention - 31 déc. 2011 à 11:42
0
Utile
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.
Commenter la réponse de Noob2008
Noob2008 5 Messages postés samedi 31 décembre 2011Date d'inscription 31 décembre 2011 Dernière intervention - 31 déc. 2011 à 14:27
0
Utile
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
    
Commenter la réponse de Noob2008
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionContributeurStatut 11 avril 2018 Dernière intervention - 31 déc. 2011 à 16:18
0
Utile
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
Commenter la réponse de ucfoutu
Noob2008 5 Messages postés samedi 31 décembre 2011Date d'inscription 31 décembre 2011 Dernière intervention - 31 déc. 2011 à 16:28
0
Utile
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.
Commenter la réponse de Noob2008

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.