cs_lebnis
Messages postés5Date d'inscriptionsamedi 4 septembre 2010StatutMembreDernière intervention 4 décembre 2012
-
4 déc. 2012 à 16:21
Utilisateur anonyme -
4 déc. 2012 à 17:40
Salut cher amis
J'ai finit de coder mon application mais l'empaquetage me pose problème.
Quand je fais le debogage normale (F5) j'ai pas d'erreur
Quand j'installe ca sur un poste ayant VB.Net ca marche mais sur un autre poste sans VB.Net mais avec Framework ca na marche pas.
J'ai analysé le problème et je me suis rendu compte que pour generer l'executable VB.Net utilise le debogage pas à pas (avec les histoires de thread)
Ce qui controle chaque ligne de code avant de genrer l'exe.Il y a des variables public que j'ai declaré dans mon programme que j'utilise au niveau de chaque methode
or en executant ces variables n'ont pas de valeur ce qui declenche d'erreur(nothing).
Quand on change le thread principal au cours de l'execution par defaut dans un autre thread ca marche et je ne sais pas comment par defaut choisit un autre thread qui n'est pas le principal avant l'execution.
Exemple :
Public parampageimpr As New PageSettings
Public chaineaimprimer As String
Public policeimpr As New Font("verdana", 12)
Public a As Integer
Public s As SpeechSynthesizer = New SpeechSynthesizer
Public a1 As Integer
Public e As Double
Public b As String
Public c As String
Public d As String
Public f As String
Public g As String
'declaration du tableau ter pour les terminaisons pour pouvoir changer la couleur
Public ter(60) As String
'declaration du tableau pour les personnes
Public tab(40) As String
par exemple lors de l'execution pas à pas le compilateur renvoit d'erreur au niveau de parampageimpr erreur: nothing
ainsi que policeimpr
s
ter(6O)
tab(40)
C'est du au fait qu'au moment de l'execution pas à pas ces variables n'ont pas de valeur car je lai utilisée au niveau d'autres methodes
La solution c'est de changer le thread par defaut avant l'execution mais je ne sais pas comment m'y prendre
Et je suppose (un suppose ironique) que tu as religieusement tenu compte de l'avertissement de VB disant que tes variables n'ont pas de valeur assignée et que tu risques d'obtenir des "nullreference exceptions" comme ils disent dans VB ?
Commence par remplacer:
Public a As Integer
ublic a1 As Integer
Public e As Double
Public b As String
Public c As String
Public d As String
Public f As String
Public g As String
par:
Public a As Integer = 0
Public a1 As Integer = 0
Public e As Double = 0
Public b As String = string.empty
Public c As String = string.empty
Public d As String = string.empty
Public f As String = string.empty
Public g As String = string.empty
Ensuite, si ça ne marche pas, il faudra essayer autre chose.
Et puis, nous ne sommes plus à l'époque du Commodore 64, du Vic 20, du ZX80, de l'AppleII et du TRS80. Les noms de variables peuvent contenir plus de 2 caractères.