sigrid1983
Messages postés45Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention29 mars 2012
-
7 déc. 2010 à 14:48
sigrid1983
Messages postés45Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention29 mars 2012
-
13 déc. 2010 à 14:40
Bonjour à tous.
Voilà, j'ai créé en vb.net une application windows (.exe).
Elle fonctionne très bien sur des ordis en 32 bits, mais ne fonctionne pas sur des ordis en 64 bits.
Ne voyant pas du tout d'où cela pourrait venir, y-a-t-il quelqu'un qui pourrait m'aider?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 7 déc. 2010 à 17:18
- Ton application utilise des bases de données type Access ou Excel ou ..., bref utilise le moteur Microsoft Jet 4.0.
- Ton application utilise des composants, api, dll, tiers d'un autre éditeur.
Si oui,
Dans le premier cas, tu dois obligatoirement forcer le mode 32 bits uniquement à la compilation (voir dans les propriétés du projet) au lieu du mode "As Any" par défaut. Le moteur MS Jet 4.0 n'existe pas en 64 bits et n'existera jamais.
Dans le second cas, tu dois vérifier que la version 64bits des composants utilisés est installée sur les machines 64 bits. Ou sinon, tu dois de même forcer la compilation en mode 32 bits uniquement
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
sigrid1983
Messages postés45Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention29 mars 20121 8 déc. 2010 à 09:15
Casy,
je viens de regarder les propriétés du projet, à l'onglet compilation, mais je n'ai rien trouvé qui ressemble à "As Any" qui selon toi devrait être coché par défaut.
J'utilise visual basic 2008. J'ai ouvert le code de mon projet "monprojet.vbproj", j'ai ensuite cliqué sur Propriétés (dans l'espace Projet de la barre de menu en haut, à côté de "Fichier, Edition,...").
Dans l'onglet "Compilation", il y a des options à activer ou non.
Par exemple: option strict, option infer, ... et j'ai juste le choix entre On ou Off.
J'ai regardé les autres onglets mais en vain.
Pourrais-tu me guider stp?
D'avance merci.
Vous n’avez pas trouvé la réponse que vous recherchez ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 8 déc. 2010 à 13:56
Dans les propriétés du projet, onglet Compiler, il faut aller dans les option avancées de compilation. Normalement tu dois avoir un paramètre qui s'appelle Unité centrale cible
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 8 déc. 2010 à 16:58
Effectivement, tu dois probablement être en version Express. Il semblerait que les versions express n'ont pas toutes les options accessibles.
Le plus simple est de directement éditer le fichier projet.
Pour cela il faut fermer le projet et la solution.
Je en saurait trop te conseiller de faire une sauvegarde du fichier .vbproj avant modification.
Ensuite il faut ouvrir le fichier .vbproj ave un éditeur de texte style Notepad par exemple (si tu veux le faire avec l'ide de vb, il faut passer par le menu Fichier et choisir "Ouvrir un fichier"
C'est un fichier XML.
Il faut rechercher la première section et rajouter (modifier si elle existe déjà) la propriété comme ceci :
...........
x86
Si tu as d'autres sections PropertyGroup, tu peux éventuellement y faire la même modif.
Tu enregistre et ferme.
Il ne te reste plus qu'à réouvrir ton projet avec VB.
Par sécurité, tu vas dans le menu Générer, et tu choisis Nettoyer la solution (ou Nettoyer le projet peut-être dans la version Express) puis Regénérer la solution, pour que la modification soit bien prise en compte.
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
sigrid1983
Messages postés45Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention29 mars 20121 9 déc. 2010 à 15:11
Salut Casy,
Désolée de t'embêter encore.
J'ai fait exactement ce que tu m'as dit , mais il semble qu'il doit y avoir une subtilité dans l'écriture de la ligne de code que je dois ajouter.
En effet, lorsque je veux ouvrir de nouveau mon vbproj avec vb, j'ai un message d'erreur concernant des caractères à ajouter.
Le truc c'est que je suis vraiment débutante, j'apprend sur le tas, donc je me tourne encore vers tes lumières.
J'aimerais tellement que ça fonctionne, je sens qu'on s'approche de la solution!!
sigrid1983
Messages postés45Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention29 mars 20121 9 déc. 2010 à 16:12
Ayé j'ai corrigé la ligne de code.
J'ai pu regénérer le projet, puis j'ai testé le .EXE sur une machine 64bits.
J'ai eu le même message d'erreur qu'avant mon premier post, qui dit un truc du genre: "Microsoft OleDb 4.0 provider n'est pas dispo sur cette local machine".
J'y comprend rien !!!
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 9 déc. 2010 à 16:31
As-tu fait les opérations de nettoyage et de régénération du projet ?
As-tu bien pris le nouvel executable généré suite à ces changements, et pas un ancien ?
Vérifie que le moteur est bien installé (tu dois avoir un fichier MSJet40.dll dans le dossier Windows\syswow64\ )
Je vérifie s'il n'y a pas d'autres points en regarder.
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
sigrid1983
Messages postés45Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention29 mars 20121 9 déc. 2010 à 17:08
Le moteur MSJet40.dll est bien présent dans le dossier Windows\syswos\64
Pour le nettoyage je n'ai pas trouvé où celà se situe ds vb express, donc je n'ai pas pu le faire.
Je n'avais qu'un .exe, je suppose que chaque fois que je modifie et que j'enregistre cela écrase l'ancien.
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 9 déc. 2010 à 17:31
Dans la partie Explorateur de projet, si tu fait un click droit sur ton projet, tu devrais avoir les commandes Générer, Regénérer, Nettoyer, Publier, .....
Tu commence par faire Nettoyer, puis ensuite tu fais Régénérer. Cela va te recréer l'exécutable.
Pour savoir si c'est le bon executable, tu regarde sa date de modification. Elle doit correspondre à quelques secondes près au moment ou tu as cliquer sur Regénérer (ou Générer suivant le cas). Si elle est plus ancienne, tu as une ancienne version de l'exécutable (de lancer l'exécutable depuis l'IDE provoque une génération préalable s'il y a eu des modifications et donc aussi une mise à jour de sa date de modification).
[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
sigrid1983
Messages postés45Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention29 mars 20121 10 déc. 2010 à 14:11
Salut,
Après click-droit sur mon projet, j'ai trouvé la commande Regénérer ( à défaut de Nettoyer).
J'ai vérifié que l'exécutable soit bien le dernier, mais cela ne fonctionne toujours pas.
Dans mon code source, je demande à mon programme de chercher des valeurs dans des fichiers .mdb
Pour cela j'ouvre une connection à la base de données et c'est là que j'utilise Microsoft OleDb 4.0
Je ne comprend pas pourquoi cela ne serait pas compatible avec un 64 bits, alors qu'Acces existe bien pour ce genre d'ordi.
Je poursuis mes recherches, mais si tu as encore une idée pour m'aider elle est la bienvenue.
Là, franchement je sèche! Je sens qu'on est proche de la résolution et qu'elle ne tient qu'à la modif d'un petit truc.
sigrid1983
Messages postés45Date d'inscriptionmardi 14 avril 2009StatutMembreDernière intervention29 mars 20121 13 déc. 2010 à 14:40
Salut Casy, Salut à tous,
Ce post pour dire un grand merci à Casy qui m'a été d'un grand secours.
Grâce à toi mon programme fonctionne sur un ordi 64 bits.
La ligne de code xml x86
est la solution à mon problème.
J'ai fait ma blonde, ça ne marchait pas jusque là à cause d'une faute de frappe de ma part! Mea Culpa!!! et mes excuses à Casy de l'avoir embêter un peu trop longtemps.