Compilation

phoenix91720 Messages postés 35 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 13 avril 2007 - 26 sept. 2006 à 09:56
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 - 29 sept. 2006 à 20:02
Bonjour à tous,

Je souhaite créer un petit projet vb qui permettrait par l'appui sur un bouton de compiler un autre projet VB6, ainsi que des ocx créer en VB6, et des ocx créer en visual c++

Quelles sont les commandes pour lancer la compilation d'un projet VB6 ?
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" d'un ocx en VB6 ?
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" d'un ocx en VC++ ?
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" d'un exe en VC++ ?

Parce que là, j'en peux plus de tout recompiler à chaque fois.......


Merci.

Mieux vaut se taire et passer pour un imbécile que de l'ouvrir et ne laisser aucun doute à ce sujet.

13 réponses

cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
26 sept. 2006 à 10:10
On ne peux pas automatiser la compilation VB6 ! car l'ide crée des fichiers de compilation  intermediaire necessaire a la vrai compilation pendant l'edition. Neanmoins tu peux crée un group de projet avec tout tes projet a l'interieur et compiler grace a un simple clique droit depuis l'explorateur.


@+

E.B.
0
phoenix91720 Messages postés 35 Date d'inscription samedi 10 avril 2004 Statut Membre Dernière intervention 13 avril 2007
26 sept. 2006 à 10:37
Je peux créer un groupe de projet, mais uniquement pour des projets VB6, hors, j'ai aussi du C++...

De plus, je souhaite en fait par un système de case à cocher choisir ce que je vais recompiler (les différents ocx, exe, dll ...)

Quelqu'un à créer un point bat pour tout compiler dont voici le code. Moi je voudrais faire la même chose, mais avec une interface vb6.

echo off



echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " ICAM IHM DEBUG CF                                "
echo """"""""""""""""""""""""""""""""""""""""""""""""""""



md "\executables compact flash"



echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " Compilation TS_AlgoSGCC.dll...                   "
"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\msdev.exe" "\TS_Vision\TS_Librairie\TS_AlgoSGCC\projet\TS_AlgoSGCC.dsp" /MAKE "TS_AlgoSGCC - Win32 Debug" /REBUILD /NORECURSE /OUT "\executables compact flash\TS_AlgoSGCC.log"
echo " copie...                                         "
copy "\TS_Vision\exe\TS_AlgoSGCC.dll" "\executables compact flash"
echo " le resultat de la compilation est disponible     "
echo " a l'adresse suivante :                           "
echo " \executables compact flash                       "
echo """"""""""""""""""""""""""""""""""""""""""""""""""""
 
echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " Compilation TS_Communication.dll...              "
"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\msdev.exe" "\TS_Vision\TS_Librairie\TS_Communication\projet Win\TS_Communication.dsp" /MAKE "TS_Communication - Win32 Debug" /REBUILD /NORECURSE /OUT "\executables compact flash\TS_Communication.log"
echo " copie...                                         "
copy "\TS_Vision\exe\TS_Communication.dll" "\executables compact flash"
echo " le resultat de la compilation est disponible     "
echo " a l'adresse suivante :                           "
echo " \executables compact flash                       "
echo """"""""""""""""""""""""""""""""""""""""""""""""""""
 
echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " Compilation TS_Corps_TraitPC_TraitCam_IHM.dll... "
"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\msdev.exe" "\TS_Vision\TS_Corps\TS_Corps_Traitement\TS_Corps_TraitPC_TraitCam_IHM\projet\TS_Corps_TraitPC_TraitCam_IHM.dsp" /MAKE "TS_Corps_TraitPC_TraitCam_IHM - Win32 Debug" /REBUILD /NORECURSE /OUT "\executables compact flash\TS_Corps_TraitPC_TraitCam_IHM.log"
echo " copie...                                         "
copy "\TS_Vision\exe\TS_Corps_TraitPC_TraitCam_IHM.dll" "\executables compact flash"
echo " le resultat de la compilation est disponible     "
echo " a l'adresse suivante :                           "
echo " \executables compact flash                       "
echo """"""""""""""""""""""""""""""""""""""""""""""""""""



echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " Compilation TS_Corps_TraitPC_IHM.dll...          "
"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\msdev.exe" "\TS_Vision\TS_Corps\TS_Corps_Traitement\TS_Corps_TraitPC_IHM\projet\TS_Corps_TraitPC_IHM.dsp" /MAKE "TS_Corps_TraitPC_IHM - Win32 Debug" /REBUILD /NORECURSE /OUT "\executables compact flash\TS_Corps_TraitPC_IHM.log"
echo " copie...                                         "
copy "\TS_Vision\exe\TS_Corps_TraitPC_IHM.dll" "\executables compact flash"
echo " le resultat de la compilation est disponible     "
echo " a l'adresse suivante :                           "
echo " \executables compact flash                       "
echo """"""""""""""""""""""""""""""""""""""""""""""""""""
 
echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " Compilation SGCCImageViewer.dll...               "
"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\msdev.exe" "\TS_Vision\TS_Librairie\TS_IntQuaternove\Objets_Graphiques\Sources\SGCCImageViewer.dsp" /MAKE "SGCCImageViewer - Win32 Debug" /REBUILD /NORECURSE /OUT "\executables compact flash\SGCCImageViewer.log"
echo " copie...                                         "
copy "\TS_Vision\exe\SGCCImageViewer.dll" "\executables compact flash"
echo " le resultat de la compilation est disponible     "
echo " a l'adresse suivante :                           "
echo " \executables compact flash                       "
echo """"""""""""""""""""""""""""""""""""""""""""""""""""



echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " Compilation TS_IntQuaternove.dll...              "
"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\msdev.exe" "\TS_Vision\TS_Librairie\TS_IntQuaternove\projet\TS_IntQuaternove.dsp" /MAKE "TS_IntQuaternove - Win32 Debug" /REBUILD /NORECURSE /OUT "\executables compact flash\TS_IntQuaternove.log"
echo " copie...                                         "
copy "\TS_Vision\exe\TS_IntQuaternove.dll" "\executables compact flash"
echo " le resultat de la compilation est disponible     "
echo " a l'adresse suivante :                           "
echo " \executables compact flash                       "
echo """"""""""""""""""""""""""""""""""""""""""""""""""""



echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " Compilation TS_Corps_GestionObjGraphiques_Ocx.ocx...
"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\msdev.exe" "\TS_Vision\TS_Corps\TS_Corps_IntIHM\TS_Corps_GestionObjGraphiques_Ocx\TS_Corps_GestionObjGraphiques_Ocx.dsp" /MAKE "TS_Corps_GestionObjGraphiques_Ocx - Win32 Debug" /REBUILD /NORECURSE /OUT "\executables compact flash\TS_Corps_GestionObjGraphiques_Ocx.log"
echo " copie...                                         "
copy "\TS_Vision\exe\TS_Corps_GestionObjGraphiques_Ocx.ocx" "\executables compact flash"
echo " le resultat de la compilation est disponible     "
echo " a l'adresse suivante :                           "
echo " \executables compact flash                       "
echo """"""""""""""""""""""""""""""""""""""""""""""""""""



echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " Compilation TS_Corps_GestionParams_Ocx.ocx...    "
"C:\Program Files\Microsoft Visual Studio\Common\MSDev98\Bin\msdev.exe" "\TS_Vision\TS_Corps\TS_Corps_IntIHM\TS_Corps_GestionParams_Ocx\TS_Corps_GestionParams_Ocx.dsp" /MAKE "TS_Corps_GestionParams_Ocx - Win32 Debug" /REBUILD /NORECURSE /OUT "\executables compact flash\TS_Corps_GestionParams_Ocx.log"
echo " copie...                                         "
copy "\TS_Vision\exe\TS_Corps_GestionParams_Ocx.ocx" "\executables compact flash"
echo " le resultat de la compilation est disponible     "
echo " a l'adresse suivante :                           "
echo " \executables compact flash                       "
echo """"""""""""""""""""""""""""""""""""""""""""""""""""



echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " enregistrement et copie ocx ControleSGCC         "
echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " enregistrement ocx ControleSGCC         "
regsvr32 \TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleBouton\CtrlSgccBouton.ocx
regsvr32 \TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleBarreBouton\CtrlSgccBarreBouton.ocx
regsvr32 \TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleBarreTabBord\CtrlSgccBarreTabBord.ocx
regsvr32 \TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleDessinMachine\SgccCtrlDessinMachine.ocx
regsvr32 \TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleDernierPasse\SgccCtrlDernierPasse.ocx
regsvr32 \TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleDerniers\SgccCtrlDerniers.ocx
regsvr32 \TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleHistogramme\SgccCtrlHisto.ocx
regsvr32 \TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleVerifTemoin\SgccCtrlVerifTemoin.ocx
regsvr32 \TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleMachine\SgccCtrlMachine.ocx
regsvr32 \TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleVoieTiroir\SgccCtrlVoieTiroir.ocx
regsvr32 \TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\Signal\CtrlSgccSignal.ocx
copy "\TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleBouton\CtrlSgccBouton.ocx" "\executables compact flash"
copy "\TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleBarreBouton\CtrlSgccBarreBouton.ocx" "\executables compact flash"
copy "\TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleBarreTabBord\CtrlSgccBarreTabBord.ocx" "\executables compact flash"
copy "\TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleDessinMachine\SgccCtrlDessinMachine.ocx" "\executables compact flash"
copy "\TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleDernierPasse\SgccCtrlDernierPasse.ocx" "\executables compact flash"
copy "\TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleDerniers\SgccCtrlDerniers.ocx" "\executables compact flash"
copy "\TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleHistogramme\SgccCtrlHisto.ocx" "\executables compact flash"
copy "\TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleMachine\SgccCtrlMachine.ocx" "\executables compact flash"
copy "\TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleVerifTemoin\SgccCtrlVerifTemoin.ocx" "\executables compact flash"
copy "\TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\ControleVoieTiroir\SgccCtrlVoieTiroir.ocx" "\executables compact flash"
copy "\TS_PCI2\TS_Automatisme_Pci2\ControleSgcc\Signal\CtrlSgccSignal.ocx" "\executables compact flash"
echo """"""""""""""""""""""""""""""""""""""""""""""""""""



echo """"""""""""""""""""""""""""""""""""""""""""""""""""
echo " Compilation IHMIcamTrait.exe...                  "
"C:\Program Files\Microsoft Visual Studio\VB98\vb6" /make "\TS_Vision\TS_Corps\TS_Corps_IHM\IHMIcamTrait.vbp"
echo " copie...                                         "
copy "\TS_Vision\exe\IHMIcamTrait.exe" "\executables compact flash"
echo " le resultat de la compilation est disponible     "
echo " a l'adresse suivante :                           "
echo " \executables compact flash                       "
echo """"""""""""""""""""""""""""""""""""""""""""""""""""
pause


La ligne en rouge compil le projet .vbp.

Dans VB6, j'ai essayé:
Shell "C:\Program Files\Microsoft Visual Studio\VB98\vb6 /make D:\TS_Vision\TS_Corps\TS_Corps_IHM\IHMIcamTrait.vbp", vbNormalFocus

A priori, çà compil, mais par contre le processus VB6 reste lancé et prend tout le temps processeur.

Mieux vaut se taire et passer pour un imbécile que de l'ouvrir et ne laisser aucun doute à ce sujet.
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
26 sept. 2006 à 11:03
Oui c'est ce que j'allais dire tu peux tres bien utiliser un batch pour le projet C++
est ce que ton projet VB6 compile dans l'ide ? car il ce peut qu'une erreur soit affiché dans la console mais que la console soit invisible ?

@+

E.B.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
26 sept. 2006 à 12:13
J'ai moi aussi, à plusieurs reprises, essayer d'utiliser le compilateur VB6 en ligne de commande et je me suis heurté chaque fois à ce phénomène. Après compilation, le compilateur reste en mémoire et prend 100% du cpu. Je fais les tests sur plusieurs machines, et plusieurs OS, c'est identique.
De plus j'ai pu remarqué que l'exe compilé de cette manière, me générait de façon aléatoire et completement incompréhensible, des erreurs d'executions, alors que le même exe généré avec l'ide marche nickel.

Malgrès toute le doc que j'ai pu étudier, malgrès tous les forums que j'ai pu visiter, je n'ai, à ce jour, toujours pas de solution.
Pour moi, l'ide utilise des options supplémentaires, non documentées. Malgrès des espionnages des process, communications interprocess, ..., je ne les ai pas découvert.

Depuis, j'ai simplement abandonner l'idée de compiler en ligne de commande avec VB6.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0

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

Posez votre question
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
28 sept. 2006 à 13:46
Salut,

Petite suggestion (Je peux faire des essais un peu plus tard si vous voulez).

On peut compiler un projet VB6 sans ouvrir l'IDE, via un clique droit sur le fichier et je sais plus qu'elle commande.

De là on peut tirer quelques conclusions intéressantes via un petit tour dans la base de registre...

Enfin j'en ai assez dit pour que vous me comprenniez je crois.

@+

Je suis en deuxième année en école d'ingénieur etpassionné de développement logiciel sous D7 et VB6. Je cherche un stage en entreprise sur Paris de début avril à fin juillet 2007.
0
cs_EBArtSoft Messages postés 4525 Date d'inscription dimanche 29 septembre 2002 Statut Modérateur Dernière intervention 22 avril 2019 9
28 sept. 2006 à 13:49
rt15> ahaha oui c'est ce dont je parlais ! mais il suffit d'en faire un *.bat ou d'executer la commande via shell pour que vb prenne 100% de cpu et freeze ! c'est ça le probleme !

@+

E.B.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
28 sept. 2006 à 14:04
rt15, t'as lu le reste du topic avant de répondre ?

Ta petite suggestion (et surtout les problèmes qu'elle amène) est justement le sujet de ce topic et de toutes les réponses déjà apportées.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
28 sept. 2006 à 15:22
Aïeuuuu !
Pas taper casy pas taper...

Ma méthode marchait tellement forcément que j'ai pas pris la peine de lire les infos... Honte sur moi.

N'empèche qu'elle à l'air de marcher. Du moins sur les projet que j'ai compilé...

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Sub Main()
ShellExecute 0, "Make", """" & Command & """", "", "", vbHide
End Sub

Je l'ai essayer en invite dos.
(Glissé du fichier du compilo depuis l'explorateur windows vers l'invite, espace, puis glisser du .vbp de l'explorateur vers l'invite).

(Par contre le vbHide est peut être pas cool si y a une erreur à la compilation...)

Je suis en deuxième année en école d'ingénieur etpassionné de développement logiciel sous D7 et VB6. Je cherche un stage en entreprise sur Paris de début avril à fin juillet 2007.
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
29 sept. 2006 à 15:32
Bon là j'ai tout essayé : En batch, avec shell, avec shellexecute... Chez moi, sur le serveur de l'école...

J'ai cherché sur google et sur ce site quelqu'un aillant un problème similaire...

J'ai trouvé un source VB6 qui compile d'autre projets VB6...

Aucune trace d'un VB6 restant en mémoire à la fin de la compilation.

Chez vous :
L'erreur peut survenir après un clique droit ?
L'erreur ne survient qu'avec certains sources ?
Vous avez des plug-ins  dans VB6 ?

Je suis en deuxième année en école d'ingénieur etpassionné de développement logiciel sous D7 et VB6. Je cherche un stage en entreprise sur Paris de début avril à fin juillet 2007.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 sept. 2006 à 15:56
Pour moi, le problème survenait systèmatiquement, quelque soit les sources, la config de VB6, la machine, ... depuis la ligne de commande, un batch, ou un script compilé en exe.

Ce n'était pas VB6 qui restait en mémoire mais C2.Exe, qui est le compilateur. De plus, même après compilation, les fichiers intermédiares (.obj) restaient sur le disque, chose qui n'arrive pas avec VB6 sauf qu'en il plante.

Autre détail important, pour mon cas, l'exécutable ainsi créé, arrivait tot ou tard à générer des exceptions totalement sans raison, alors que le même exe généré avec l'ide ne plantait jamais.

Et j'ai passer près de 2 semaines à chercher une solution jusqu'a espionner les messages système de l'ide lors de la compilation, rien trouver.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
29 sept. 2006 à 19:07
Si le problème c'est C2.EXE, alors si tu prends celui qui est sur mon site, cela devrait marcher.

Je sais pas ce que tu appelles "espionner les messages système de l'ide", mais apparement y a des progs qui ont remplacé C2.EXE par un programme de leur cru qui sauvegarde simplement les arguments qu'on lui passe. Mais je n'ai trouvé personne qui utilise directement C2.EXE.

Si ça compile suite à un clique droit mais que ça compile pas en "reproduisant" le clique droit... Faut vraiment que ce soit un problème bizarre.

Je suis en deuxième année en école d'ingénieur etpassionné de développement logiciel sous D7 et VB6. Je cherche un stage en entreprise sur Paris de début avril à fin juillet 2007.
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
29 sept. 2006 à 19:42
Evidemment que tu n'as trouvé personne qui utilise C2. Tu n'appelle pas le compilateur directement, c'est VB6 qui l'appele soit depuis l'ide, soit quand tu lui passe la commande MAKE.

Pour info, C2.exe ne fait que compiler les fichiers de code, il ne crée pas l'exe. Pour faire l'exe, après compilation, il faut appeler le linker, ici Link.exe.

C2.exe crée les fichiers .obj à partir des .bas, .frm, .cls, ...
Ensuite Link.exe crée l'exe à partir des .obj

Quant à ton fichier c2.exe, c'est gentil de ta part, mais je ne le prend pas. Il correspond à la toute première version de VB6. Depuis il y a eu 6 services pack de publier pour corriger divers bugs de VB6 dont certains dans le compilateur et le linker.

Remplacer C2 pour intercepter les options de commandes ? C'est la première chose que j'ai tenté.

Ce que j'appele espionner les messages systèmes de l'ide, c'est intercepter les messages que l'appli envoie ou reçoit de windows ou d'autres applis. Par exemple lorsque tu clique sur un bouton, Windows poste un message à ton appli. C'est ce message qui a pour effet de déclencher l'événement Click au sein de ton appli.

---- Sevyc64  (alias Casy) ---- # LE PARTAGE EST NOTRE FORCE #
0
cs_rt15 Messages postés 3874 Date d'inscription mardi 8 mars 2005 Statut Modérateur Dernière intervention 7 novembre 2014 13
29 sept. 2006 à 20:02
Je te demandais pas forcément de prendre mon C2.EXE, mais juste de l'essayer. Il a beau être vieux usé et fatigué, lui il ne me pose pas de problème. Si mon C2.EXE avait fonctionné chez toi, je t'aurais alors demandé de me filer le tien. Et si tu me l'avais donné j'aurais essayer de faire ce que tu as fait. (Encore que j'aurais pas fait de hook).

Si tu tiens pas à essayer le mien mais que tu veux bien me filer le tien (Avec le lieur ce serait p'têt encore mieux) je suis dispo ("monpseudoenminuscule"@voila.fr)

A deux ont a presque deux fois plus d'idées.

Je suis en deuxième année en école d'ingénieur etpassionné de développement logiciel sous D7 et VB6. Je cherche un stage en entreprise sur Paris de début avril à fin juillet 2007.
0
Rejoignez-nous