Compilation

Résolu
ephores Messages postés 123 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 5 juin 2007 - 3 juin 2007 à 22:20
ephores Messages postés 123 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 5 juin 2007 - 5 juin 2007 à 17:45
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

cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
5 juin 2007 à 13:40
flag reserver -> flag regserver
3
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
4 juin 2007 à 04:27
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...
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
4 juin 2007 à 09:07
Quel est l'OS (et sa version) de la machine sous laquelle tu compiles ?
0
ephores Messages postés 123 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 5 juin 2007
4 juin 2007 à 09:20
XP pro les deux ..... c'est bizarre c'est que sur la machine où je compile , j'ai pas besoin de faire ça .
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
4 juin 2007 à 09:25
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 .
0
jmfmarques Messages postés 7668 Date d'inscription samedi 5 novembre 2005 Statut Membre Dernière intervention 22 août 2014 28
4 juin 2007 à 09: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 ?
0
jrivet Messages postés 7393 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
4 juin 2007 à 09:38
SAlut,
Ca sent le Setup d'installation tout ca....

@+: Ju£i?n
Pensez: Réponse acceptée
0
ephores Messages postés 123 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 5 juin 2007
4 juin 2007 à 10:18
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)
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
4 juin 2007 à 12:36
Salut,

Oublie l'assistant empaquetage et déploiement.

Presque tout le monde utiliseInnoSetup : un tuto.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
4 juin 2007 à 21:43
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
0
ephores Messages postés 123 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 5 juin 2007
4 juin 2007 à 21:53
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..;-((
0
draluorg Messages postés 625 Date d'inscription vendredi 23 avril 2004 Statut Membre Dernière intervention 25 novembre 2010
4 juin 2007 à 22:02
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...
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
5 juin 2007 à 10:09
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 ?
0
ephores Messages postés 123 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 5 juin 2007
5 juin 2007 à 16:17
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 ?
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
5 juin 2007 à 17:25
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.
0
ephores Messages postés 123 Date d'inscription lundi 30 juin 2003 Statut Membre Dernière intervention 5 juin 2007
5 juin 2007 à 17:45
d'accord  ! merci pour cette précision.
0