Compilation

Résolu
Signaler
Messages postés
123
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
5 juin 2007
-
Messages postés
123
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
5 juin 2007
-
Bonjour.
Lorsque j'installe le logiciel créé avec VB6 sur un autre poste ayant XP, je dois l'executer en mode compatibilité W98  sur celui ci, sinon ça ne marche pas.
Comment faire pour que , soit cette option soit coché automatiquement, soit compiler directement pour XP.

Merci par avance pour vos lumières.
Cordialement.

16 réponses

Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
flag reserver -> flag regserver
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Salut,

Il n'y a pas de compilation propre a XP, verifie que le post XP a bien tous les runtime necessaires (vb6frdll etc...)

Sinon le probleme vient peut etre de ton code ou d'un de ces composant qui ne serait pas compatible avec XP.

++

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Quel est l'OS (et sa version) de la machine sous laquelle tu compiles ?
Messages postés
123
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
5 juin 2007

XP pro les deux ..... c'est bizarre c'est que sur la machine où je compile , j'ai pas besoin de faire ça .
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Es-tu par ailleurs certain (notamment si tu développes sous WIN 9x), que toutes tes instructions pourront être exécutées sous XP, sous WIN200 ou sous NT  (notamment en cas d'utilisation de certaines fonctions de l'API de Windows.... je pense par exemple - mais pas uniquement - à l'inhibition de l'accès au gestionnaire des tâches).
T'es-tu, enfin, intéressé aux compilations conditionnelles (voir ton aide en ligne à ce sujet) en utilisant la syntaxe :
#If...Then...# Else Directive 
 C'est assez long et il faut  lire avec la plus grande  attention les explications données...
Il te faut également bien connaître l'OS des différents clients possibles ... et les différences pouvant exister (pour certains points particuliers) en l'un et l'autre .
Messages postés
7668
Date d'inscription
samedi 5 novembre 2005
Statut
Membre
Dernière intervention
22 août 2014
27
Comprends plus, là ...


Que distribues-tu donc, exactement ? L'exe et son setup ? L'exe tout seul ? le projet non compilé et à compiler sur l'autre ?


Ton projet utilise-t-il des OCX ?
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
58
SAlut,
Ca sent le Setup d'installation tout ca....

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
123
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
5 juin 2007

J'utilise l'empaquetage et deploiement de visual basic 6, c'est ça que je distribue.
J'utilise comme référence :
Visual Basic for Application (msvbvm60.dll)
Visual Basic runtime
Visual basic object and procedure ( VB6.OLB)
OLE automation (stdole2.tlb)
Microsoft data source interfaces (msdatsrc.tlb)
Microsoft DAO 3.51 ( DAO350.dll)
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Salut,

Oublie l'assistant empaquetage et déploiement.

Presque tout le monde utiliseInnoSetup : un tuto.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
41
Si l'exe n'est pas compilé sous XP, il est recommandé de le compilé sous XP (ou sous une plateforme NT tout au moins).

Si l'exe est effectivement compilé sous XP, alors ça viens de l'assistant de VB6.

Dans tout les cas, l'assistant est à définitevement abandonné sous XP, il est completement largué et est source de gros bugs.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
123
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
5 juin 2007

merci casy pour tes réponses, mais j'ai essayé avec inno, même en incluant les dll dans la compilation, c'est pire , l'exe me genere une erreur.
ce qui est bizarre c'est que si j'execute l'exe là où j'ai visual basic 6 d'installé, j'ai pas besoin de coché l'option de compatibilité w98. Est ce que vb6 installe des dll qui permettent cette compatibilité ?
sinon j'ai essayé d'importer le prjet sous visual studio 2005 ... une catastrophe..;-((
Messages postés
625
Date d'inscription
vendredi 23 avril 2004
Statut
Membre
Dernière intervention
25 novembre 2010

Eh c'est quoi comme appli exactement ?


Serait il possible que tu zip le code source et que tu nous mette un lien pour le tester ? ou par mail si tu as plus facile...


Ca nous permetra de mieux t'aider car ca peut etre des tas de truc et sans le code ca risque de prendre longtemps....


++

Quand on pose une question on est con 5 minutes,
Quand on ne la pose pas on le reste toute sa vie...
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Tu peux éventuellement lister les dlls réellement utilisée par ton appli en cours d'execution.
Avec processexplorer par exemple.

Dans inno, bien penser au flag reserver pour les dlls ActiveX.

l'exe me genere une erreur.
Avec quel message ?
Messages postés
123
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
5 juin 2007

merci j'ai utilisé inno, et c'est impec, je compile avec dedans l'exe auquel j'ai activé l'option de compatibilité. Du coup chez l'utilisateur c'est transparent.
ceci dis c'est quoi regserver ?
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
15
Il existe au moins deux types de dll, les classiques et les ActiveX. (On peut aussi approximer le comportement des contrôles ActiveX stockés dans les .ocx par celui des dll ActiveX.)

Quand une appli à besoin d'une dll, Windows à besoin de savoir où elle se trouve.

Dans le cas d'une dll classique, il regarde dans %systemroot%, %path%, le répertoire de l'exe, le répertoire courant...

Dans le cas d'un ActiveX, il regarde dans l'emplacement de la dll dans la base de registre. Il faut donc que l'installeur écrive dans la base de registre l'emplacement de la dll. C'est ce que l'on demande avec le flag regserver de Inno ou quand on fait un regsvr32 en invite de commande.
Messages postés
123
Date d'inscription
lundi 30 juin 2003
Statut
Membre
Dernière intervention
5 juin 2007

d'accord  ! merci pour cette précision.