Demande d'explication par rapport au debug (Version vb express - visualstudio) [Résolu/Fermé]

xXInfinityNefasteXx 50 Messages postés lundi 7 novembre 2011Date d'inscription 22 juillet 2012 Dernière intervention - 12 avril 2012 à 21:51 - Dernière réponse : NHenry 14207 Messages postés vendredi 14 mars 2003Date d'inscription 22 juin 2018 Dernière intervention
- 13 avril 2012 à 21:59
Bonjour j'ai fais une applic avec la version de test de visual studio :

Mon prog


J'ai un souci quand je refait ce projet sous vb-express, ca ne marche plus.
je vous montre le bout de mon code ou ce situe mon problème:

   Dim Buff As Object = My.Computer.Registry.GetValue(KeyPath, ValueName, 0)

        If Buff Is Nothing Then Return "N/A"
        Dim temp As String = ""

        For l As Integer = LBound(Buff) To UBound(Buff)
            temp = temp & " " & Hex(Buff(l))
        Next


J'ai une erreur au debugage qui me dit : [ Impossible d'effectuer un cast d'un objet de type 'System.Int32' en type 'System.Array' ] dans la version express de vb , alors que sur vb studio aucun souci .
J'aimerai que l'on m'explique, que l'on me donne plus d'information au niveau des "CPU", de la pile, pour essayer de résoudre mon probleme, car je ne dispose plus de vb-studio mais seulement vb express avec lequel je travail tous les jours. Merci de votre aide.

je précise un point:ce qui m'intrigue

1- je dispose de mon fichier de la solution en visual studio
2- sur ce fichier je fais clique droit ouvrir avec vb express
3- mon projet s'ouvre, puis je lance le debug
4- le programme fonctionne quand je debug dans vb Express

5- Je créer un nouveau projet et je recopie à l'identique le code de mon programme
6- je debug , et une erreur se produit[ Impossible d'effectuer un cast d'un objet de type 'System.Int32' en type 'System.Array' ]

7-J'ai recherché dans les fihiers créés par vb pour voir si je ne trouvai pas une ligne de code interressante, mais je ne vois vraiment pas.


de l'aide svp merci

cordialement
Afficher la suite 

14 réponses

Meilleure réponse
NHenry 14207 Messages postés vendredi 14 mars 2003Date d'inscription 22 juin 2018 Dernière intervention - 13 avril 2012 à 12:40
3
Merci
Bonjour,

La différence entre X86, X64 et AnyCPU, c'est :
- X64, cible spécifiquement les 64 bits
- X86, cible les 32 bits, parfois indispensable pour accéder à certaines DLL ou ActiveX
- AnyCPU, pas de cible spécifique, mais, c'est la VM .NET qui choisira selon la machine d’exécution.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site

Merci NHenry 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 121 internautes ce mois-ci

Commenter la réponse de NHenry
NHenry 14207 Messages postés vendredi 14 mars 2003Date d'inscription 22 juin 2018 Dernière intervention - 12 avril 2012 à 23:04
0
Merci
Bonjour,

Lis le point 3 de ma signature.
Si tu as l'erreur sur :
LBound(Buff)
C'est que Buff est un Entier (Object peut tout contenir), regardes la valeur avec un espion.

---------------------------------------------------------------------
[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list
---
Mon site
Commenter la réponse de NHenry
xXInfinityNefasteXx 50 Messages postés lundi 7 novembre 2011Date d'inscription 22 juillet 2012 Dernière intervention - 12 avril 2012 à 23:51
0
Merci
Encore une fois , merci beaucoup Henry.
Commenter la réponse de xXInfinityNefasteXx
xXInfinityNefasteXx 50 Messages postés lundi 7 novembre 2011Date d'inscription 22 juillet 2012 Dernière intervention - 13 avril 2012 à 00:40
0
Merci
Je suis en train d'étudier mon problème, j'ai fait tout ce qui est préciser dans le point 3 de ta description, sans succès.

1-J'ai activer Option Explicit, qui est activé par défault d'ailleur.
2-J'ai bien activé Option Strict, qui lui était sur off
3-J'ai retiré l'espace de nom : Microsoft.VisualBasic

4-Toujours le même problème.... une idée?

merci
Commenter la réponse de xXInfinityNefasteXx
xXInfinityNefasteXx 50 Messages postés lundi 7 novembre 2011Date d'inscription 22 juillet 2012 Dernière intervention - 13 avril 2012 à 01:01
0
Merci
j'en suis ici ^^ :

Dim lBound() As Int32
Dim UBound() As Int32
Dim Hex() As Object

Dim temp As String = ""
Dim Buff As Object = CType(My.Computer.Registry.GetValue(KeyPath, ValueName, 0), Object())
        If Buff Is Nothing Then Return "N/A"
        For l As Integer = LBound(Buff) To UBound(Buff)
            temp = temp & " " & Hex(Buff(l))
        Next



je dois mal m'y prendre pour déclarer Buff , je suis en option explicite on et option strict on et j'ai une erreur sur Buff.

un coup de main ? merci
Commenter la réponse de xXInfinityNefasteXx
xXInfinityNefasteXx 50 Messages postés lundi 7 novembre 2011Date d'inscription 22 juillet 2012 Dernière intervention - 13 avril 2012 à 01:25
0
Merci
Une petite question aussi , pourquoi lorsque j'ouvre mon fichier vb studio et que je debug dans l'express ca marche, sans option strict d'activé? alors que le programme créé entièrement sous express ne marche pas?
Commenter la réponse de xXInfinityNefasteXx
xXInfinityNefasteXx 50 Messages postés lundi 7 novembre 2011Date d'inscription 22 juillet 2012 Dernière intervention - 13 avril 2012 à 01:48
0
Merci
J'ai trouvée ca comme info :'Build the application witt Target x64 CPU or Any CPU

voici ce que je devrai faire mais vb express n'as pas le même menu dans "Options avancées du compilateur", comment faire sous express pour résoudre ce problème , et j'ailerai vraiment comprendre le pourquoi du comment... merci
Commenter la réponse de xXInfinityNefasteXx
Utilisateur anonyme - 13 avril 2012 à 04:01
0
Merci
Gestionnaire de configurations quelque part dans les menus. Pas envie de chercher à ta place.
Commenter la réponse de Utilisateur anonyme
xXInfinityNefasteXx 50 Messages postés lundi 7 novembre 2011Date d'inscription 22 juillet 2012 Dernière intervention - 13 avril 2012 à 04:05
0
Merci
Est - ce que je t'ai demandé de chercher à ma place ? c'est pas croyable , en fait sur ce si tu n'as pas de connaissances tu passes direct pour un boulet ! franchement les gars ...mince vous avez commencez comment vous ?

Merci tout de même
Commenter la réponse de xXInfinityNefasteXx
Utilisateur anonyme - 13 avril 2012 à 04:43
0
Merci
Écoute bien petit morveux. J'ai suivi un cours de programmation en Fortran avec des cartes perforées comme support d'entrée.

À partir de ce cours de FORTRAN, j'ai appris par moi-même Le BASIC, QuickBASIC, VisualBASIC, VisualBASIC édition applications, Visual BASIC.net

Je l'ai appris en regardant dans l'aide de ces programmes, en lisant des livres et des articles.

J'ai appris à chercher des exemples sur les multiples sites consacrés à la programmation et surtout sur MSDN.

J'ai appris par efforts essais et erreurs et pas comme beaucoup trop de jeunes d'aujourd'hui qui veulent des solutions toutes cuites dans le bec.

Si au lieu de venir brailler ici, tu avais juste regardé dans les menus et dans l'aide de VB; cela ferait une mèche que tu l'aurais trouvé ta réponse.

Et puis, si tu avais cherché dans l'aide, tu aurais trouvé que cette ligne-là doit être vérifiée:

 For l As Integer = LBound(Buff) To UBound(Buff)


Parce que dans VB.net tous les tableaux et collections partent avec l'indice 0 (zéro) et que LBound donne toujours 0. Donc, tu as probablement intérêt à vérifier s'il faut mettre cela à la place

 For l As Integer = 0 To UBound(Buff)- 1


Le corollaire est que ton plantage est peut-être plus dû à ta gestion des indices qu'à ta version Express ou pas Express.

Amen
Commenter la réponse de Utilisateur anonyme
NHenry 14207 Messages postés vendredi 14 mars 2003Date d'inscription 22 juin 2018 Dernière intervention - 13 avril 2012 à 09:22
0
Merci
Bonjour,

Merci de vous calmer.
L'exception :
Impossible d'effectuer un cast d'un objet de type 'System.Int32' en type 'System.Array'
et la ligne :
For l As Integer = LBound(Buff) To UBound(Buff)

ça me semble clair, Buff est un entier et pas un tableau.
Verifie le type de Buff avant de le traiter comme un tableau (Type Of).

De plus :
3-J'ai retiré l'espace de nom : Microsoft.VisualBasic
Indiquerais que tu as remplacé LBound et Ubound, mais par quoi ?

Mon site
Commenter la réponse de NHenry
xXInfinityNefasteXx 50 Messages postés lundi 7 novembre 2011Date d'inscription 22 juillet 2012 Dernière intervention - 13 avril 2012 à 12:30
0
Merci
Bonjour henry, oui je me calme sans problème , le souci c'est que l'on m'as manqué de respect, enfin désolé.
En tout cas merci de t'interresser encore une fois à mon cas.

J'avais bien compris le principe de l'erreur , mais j'aurai aimé avoir plus d'informations.
Pourquoi , en activant tout simplement la plateforme "any cpu" mon bout de code marche et effectue tout de même la conversion ?C'est surtout ca qui m'interresse...j'aimerai plus de détails sur la génération any cpu.
merci
Commenter la réponse de xXInfinityNefasteXx
xXInfinityNefasteXx 50 Messages postés lundi 7 novembre 2011Date d'inscription 22 juillet 2012 Dernière intervention - 13 avril 2012 à 12:49
0
Merci
Merci Merci !!! Une réponse claire, nette et précise !!!
Je n'ai pas dut chercher comme il faut.
Bravo Henry pour ton savoir, tes réponses et ton RESPECT ! Encore merci.
Je me fais vite oublier.

bonne journée.

(Si tu as la possibilité de supprimer mes anciens "coms" agressifs, ca serai gentil, on est la pour apprendre et non pas pour s'en mettre plein les dents. désolé si je te fais perdre un peu de temps pour la suppression.)
Commenter la réponse de xXInfinityNefasteXx
NHenry 14207 Messages postés vendredi 14 mars 2003Date d'inscription 22 juin 2018 Dernière intervention - 13 avril 2012 à 21:59
0
Merci
Sujet nettoyé.
Sujet verrouillé.
Commenter la réponse de NHenry

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.