Compilation

Signaler
Messages postés
35
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
13 avril 2007
-
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
-
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

Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
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.
Messages postés
35
Date d'inscription
samedi 10 avril 2004
Statut
Membre
Dernière intervention
13 avril 2007

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.
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
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.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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 #
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
11
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.
Messages postés
4525
Date d'inscription
dimanche 29 septembre 2002
Statut
Modérateur
Dernière intervention
22 avril 2019
9
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.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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 #
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
11
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.
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
11
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.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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 #
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
11
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.
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
36
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 #
Messages postés
3874
Date d'inscription
mardi 8 mars 2005
Statut
Modérateur
Dernière intervention
7 novembre 2014
11
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.