begin process at 2012 02 14 13:31:37
  Trouver un code source :
 
dans
 
Accueil > Forum > 

VB.NET et VB 2005

 > 

Divers

 > 

General

 > 

Manette de jeu et visual basic 2005


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Manette de jeu et visual basic 2005

dimanche 17 juin 2007 à 18:53:31 | Manette de jeu et visual basic 2005

sidne_II

Bonsoir

Je n'arrive pas à utiliser l'API pour lire le joystick avec la foncion    joyGetPos (0, manette_info)

  Public Structure JOYINFO
        Public wXpos As Long
        Public wYpos As Long
        Public wZpos As Long
        Public wButtons As Long

    End Structure


    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'rem
        Dim Erreur_retour As Long
        Dim manette_info As JOYINFO
        Erreur_retour = joyGetPos(0, manette_info)
    End Sub


Voila le message d'erreur à l'execution
Un appel à la fonction PInvoke 'Joypad Le test!WindowsApplication1.Module1::joyGetPos' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.


Si quelqu'un peut m'aider

Merci d'avance

Amigalement

http://amigamaquette.free.fr



dimanche 17 juin 2007 à 19:01:52 | Re : Manette de jeu et visual basic 2005

casy

Membre Club

Je sens qu'il va flloir mettre un système de réponses automatiques pour ce genre de question.

Une petite recherche sur le forum, t'aurais appris que l'on doit y répondre en gors 2 à 3 fois par semaines.

Il y a un problème de type de variable entre .Net et les api win32.

Tous ce qui est de type Long dans les api, il faut le déclarer comme Interger dans .Net

---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]
dimanche 17 juin 2007 à 19:13:30 | Re : Manette de jeu et visual basic 2005

sidne_II

Merci pour cette réponse dépassant  la vitesse de celle de la réponse automatique

J'ai effectué une recherche un peu partout mais toutes les solutions que j'ai trouvées ne s'applique qu' à VB  6

Mais je suis certainement un peu obtu ,car même en remplaçant long par integer  il me renvoie toujours le même message  que je ne comprends pas

Si quelqu'un peut m'aider je lui en serai reconnaissant

Amigalement 
dimanche 17 juin 2007 à 21:39:06 | Re : Manette de jeu et visual basic 2005

akim77


Salut,

Après les modifications préconisées par Casy, ton code  doit resembler à çà:

Declare Function joyGetPos Lib "winmm.dll" ( _
ByVal uJoyID As Integer, ByRef pji As JOYINFO) As Integer

Type JOYINFO
    wXpos As Integer
    wYpos As Integer
    wZpos As Integer
    wButtons As Integer
End Type

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    'rem
        Dim Erreur_retour As Integer
        Dim manette_info As JOYINFO
        Erreur_retour = joyGetPos(0, manette_info)
End Sub

Sinon montre nous ton code complet.

@+

dimanche 17 juin 2007 à 21:50:53 | Re : Manette de jeu et visual basic 2005

sidne_II

Merci pour votre aide voici le code  aprés la modif


Public Class Form1

    Public Structure JOYINFO
        Public wXpos As Integer
        Public wYpos As Integer
        Public wZpos As Integer
        Public wButtons As Integer

    End Structure
    Dim manette_info As JOYINFO

    Declare Function joyGetPos Lib "winmm.dll" (ByVal uJoyID As Integer, ByVal pji As JOYINFO) As Integer

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        'rem
        Dim Erreur_retour As Integer
        Erreur_retour = joyGetPos(0, manette_info)
    End Sub
End Class

en rouge le message d'erreur à l'exécution
Un appel à la fonction PInvoke 'Joypad Le test!WindowsApplication1.Form1::joyGetPos' a déséquilibré la pile. Cela peut se produire, car la signature PInvoke managée ne correspond pas à la signature cible non managée. Vérifiez que la convention d'appel et les paramètres de la signature PInvoke correspondent à la signature non managée cible.

Je ne comprends pas la signification de ce message d'erreur
Si quelqu'un peut m'aider je lui en serais reconnaissant

Merci encore pour vos réponses

Amigalement



dimanche 17 juin 2007 à 22:19:45 | Re : Manette de jeu et visual basic 2005

casy

Membre Club
Le problème viens certainement du passage de la structure à l'api.
Les structures .Net ne doivent pas etre stockées comme en vb6 probablement d'ou le désiquilibre de la pile lors de l'appel.

Pour l'instant je n'ai pas encore trouvé la solution. Peut-etre faut-il passer par un marshaling ?

---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]
dimanche 17 juin 2007 à 22:44:49 | Re : Manette de jeu et visual basic 2005

casy

Membre Club
Réponse acceptée !

Essaye peut-etre avec ceci :

   Declare Function joyGetPos Lib "winmm.dll" (ByVal uJoyID As Integer, ByRef pji As JOYINFO) As Integer

il n'y a plus l'erreur, mais je sais pas si les infos passent quand même, j'ia pas de joystick pour vérifier

---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]
dimanche 17 juin 2007 à 23:00:35 | Re : Manette de jeu et visual basic 2005

sidne_II

Je viens de tester  a priori cela fonctionne , j'ai branché une manette et les boutons sont bien détecté . A priori c'est bien dans le passage de la structure à l'API

Un grand merci

Je vais  essayer de finaliser le code  pour le mettre à disposition , mais j'ai encore du boulot

Amigalement

http://amigamaquette.free.fr
dimanche 17 juin 2007 à 23:10:10 | Re : Manette de jeu et visual basic 2005

casy

Membre Club

Ok, c'est tout simplement une erreur de déclaration

Je confirme en regardant la déclaration pour VB6, que c'est bien ByRef qu'il faut mettre.


---- Sevyc64  (alias Casy) ----
# LE PARTAGE EST NOTRE FORCE #    [ Lien ]
lundi 18 juin 2007 à 09:23:55 | Re : Manette de jeu et visual basic 2005

Julien237

Cool j'avais jamais vu qu'on pouvait utiliser un joystick sans passer par DirectInput, c'est nettement plus simple à mettre en place comme ça, merci d'avoir posé ta question ...
Pense à accepter une réponse de Casy pour valider le topic...


Julien.

1 2

Cette discussion est classée dans : public, long, signature, manette, joygetpos


Répondre à ce message

Sujets en rapport avec ce message

Treeview,icone, et transparence ... [ par Warning ] Voila mon probleme:J'ai créer cette fonction, mais j'aimerais pouvoir récupérer l'icone du fichier dans un TreeView, avec un fond transparent, j'ai ri Toujours pas de réponse ! Impression de caractères avec rotation !!!! [ par denis ] J'ai trouvé la solution pour appliquer une rotation à un text dans un picturebox (à l'écran) en utilisant les fonctions GDI createfontindirect, select Détecter si une application est lancée pour la fermer... [ par sebmaurice ] BonjourVoici le code pour Win 9x qui permet de détecter si une application tourne et si c'est le cas, la fermer. Est-il possible d'obtenir ceci pour W setParent et le focus [ par Manifeste ] Salut!Le code suivant me permet de "loader" un formulaire "enfant" dans le controle pictureBox d'un formulaire "parent". Jusqu'ici tout marche bien, l API permettant de partager un dossier : le script à tester [ par arc59 ] J'ai récupéré le code suivant sur un site internet. Ce code est censé partagé le dossier "C:\Dos" lorsqu'on l'execute. Or, il ne partage rien. Pourrie Ca m'enerve ce module fait tout planter ! Aidez moi c'est tres important ! [ par Remixgame ] J'ai un prob avec ce module que je vous affiche après des que je fais appelle à celui ci exemple call download("www.truc.com/grosfichier.exe","c:\gros Trouvez l'erreur SVP !!! (Rapidement si possible) :) [ par titiboux ] ChristianJe veux copier un disque dur complet sur un autre disque dur. J'ai tapé le code suivant, qui ne fonctionne que si l'origine est un répertoire Connaitre son Ip Internet ??? [ par zorglob ] Salut tout le monde !bon apres avoir parcouru tout le forum et les exemple de code, je n'ai pas encore trouve un moyen de recuperer a coup sur son adr Decoup Form [ par ICIoBRa ] Le code suivant permet de découper un Form grace a une picturebox'Dans un module :Option ExplicitPublic Declare Function GetPixel Lib "gdi32" (ByVal passer une textbox en parametre [ par sarasvati ] bonjour,j'essais de passer une textebox en parametre pour une fonction mais peu importe ce que je fais j'ai toujours la même erreur,voici le message d


Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 4,259 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales