Compilation

Résolu
cs_Anne Onyme Messages postés 19 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 22 juin 2005 - 2 mars 2005 à 19:34
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019 - 4 mars 2005 à 10:07
Salut,
Je me demandais s'il n'existait pas par hazard la possibiliter de compiler un projet de telle maniere que les .ocx et autres babiolles soient incluent dans le .exe ou que d'une maniere ou d'une autre le .exe soit directement executable sur les clients... sans avoir besoin de copier vb6fr.dll (au minimum) sur le client... bref de faire de l'executable un VRAI fichier DIRECTEMENT executable...

Il me semblerait stupide que ce cher billou n'ai pas prévu ce genre "d'option"

Merci
Anne

30 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 mars 2005 à 19:48
Le cher Billou met à disposition le compilo C et l'assembleur pour ceux qui veulent produire du code natif.
Le beurre et l'argent du beurre non, faut pas abuser.

ciao...
BruNews, MVP VC++
3
cs_Anne Onyme Messages postés 19 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 22 juin 2005
2 mars 2005 à 20:11
Okay, merci pour ta reponse...

J'abandonne le Vb...
Faites du Java... (au moins c'est gratuit)

Anne
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
2 mars 2005 à 20:39
Les compilo de Billou aussi sont gratuits.

ciao...
BruNews, MVP VC++
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
2 mars 2005 à 21:45
En gros tu dit (BruNews) VB5/6 ne peut produier de code natif ? :/ Bon je suis d'accord ya des runtimes etc, mais je serais jamais d'accord avec ceux qui disent que VB5/6 ne peut pas produire de code natif.


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0

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

Posez votre question
cs_Anne Onyme Messages postés 19 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 22 juin 2005
3 mars 2005 à 00:13
En fait, la question qui tue c'est: A quoi bon developper des prog si c'est pour au final il ne soit pas possible a n'importe quel client de l'utiliser ?
Sincerement je portais deja pas Micro$oft dans mon coeur mais alors je vis une veritable repulsion pour cette entreprise pas meme capable de faire un vrai produit fini pour presque 200€... (bah oui, il y en a qui achettent encore)
Si je m'abstient de dire tout le mal que je pense a present de cette entreprise dans les termes qui me viennent en tete c'est bien pour ne pas etre banni de CS.com (surtout suite a une reponse d'admin)

BruNews> je suis pas sur de bien comprendre... serais tu en train de sous entendre que l'utilisation de Vb 6.0 ou Vb.NET sans licence d'utilisation serait... legal... c'est quoi alors cette connerie de "cluf" a l'install ?

Warning> comment on fait du natif alors ?
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
3 mars 2005 à 10:05
"A quoi bon developper des prog si c'est pour au final il ne soit pas possible a n'importe quel client de l'utiliser ?"
Alors la !! Je comprend pas !!! Donnes-moi un code VB et je te le fait tourner sur n'importe quel client Windows (sauf incompatibilité de version bien sûr !)
Tu es Pro Java !! Si tu savais ce que j'en penses !!! On a autant de pb de compatibilité avec un source Java ! Tu n'as jamais rencontré d'erreur "Applet Crashed" en surfant sur le net toi ??

Christophe R
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 mars 2005 à 11:15
et on fait tourner du java sans installer d'énormes runtimes ?
vaste plaisanterie, jamais un code java ne peut démarrer sur mes machines cause qu'il n'y a pas de runtime java dessus. C'est le lot de tous les langages interprétés et pas seulement de VB.

Warning > NON et NON, la seule partie de 'natif' c'est les appels à la virtual machine par un code asm direct et non plus en pcode comme avant, ceci dit chaque ligne de VB fait un aller retour en virtual machine donc rien de directement exécutable, voila pourquoi je dis que ce n'est pas du natif et d'ailleurs aucun interprété ne donne du natif sinon ce ne serait plus de l'interprété.

ciao...
BruNews, MVP VC++
0
crenaud76 Messages postés 4172 Date d'inscription mercredi 30 juillet 2003 Statut Membre Dernière intervention 9 juin 2006 28
3 mars 2005 à 14:57
Démonstration édifiante de Brunews !!! C'est comme se domander pourquoi la couleur rouge n'est pas bleue ??
Alors quitte à faire de l'interprété, ben moi, je continu en VB !!
Eh ! Brunews comme tu maitrise bien tout cela, que peut-tu nous dire de VB.NET ! Natif ou pas ?

Christophe R
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 mars 2005 à 15:18
.net est bien entendu de l'interprété, les binaires produits sont chargés en 'intermediate language' et compilés avant chaque exécution selon platforme et framework présent.

Je vous invite d'ailleurs tous à migrer vers .net au plus vite, les PCs en x64 sont en vente maintenant partout en Amd comme en Intel, le 32 bits est en fin de vie et n'en a certainement plus pour longtemps, rappelez vous la vitesse à laquelle s'est opéré le passage du 16 au 32 bits.

Anne Onyme > quand je parlais du beurre et l'argent du beurre, tant qu'un langage permet:
mydate = "01/01/2005"
il est bien évident qu'il faudra une virtual machine pour l'interpréter, il est aisé de deviner qu'il faut derrière de nombreuses lignes de codes pour arriver à ce calcul, ne serait-ce que pour le parser de la string.

ciao...
BruNews, MVP VC++
0
cs_Anne Onyme Messages postés 19 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 22 juin 2005
3 mars 2005 à 16:09
crenaud76> Perso non, je n'ai jamais eut ce genre de probleme avec une applet sur le net... mais je suis pas une grosse navigatrice alors je sais pas... peut etre... ceci il y a de mauvais programmeur partout... et meme le propre du programmeur ("il n'en est pas moins homme") c'est de faire des erreurs. N'as tu jamais eut un joli ecran bleu ou une petite boite de dialogue "Le systeme a recupere d'une erreur serieuse"... (lol... et les autres, pas serieuses ?).

BruNews> tu as tout a fait raison... pour faire tourner du java il faut sacrifier une quantité importante de ressource... et pour cause... le java est un language semi-interprété... (au passage, ca permet a un seul code de tourner sur une panoplie de plateforme... et Vb ? arf, j'connais deja la reponse... .Net peut etre alors ?) Au moins en l'occurence, il n'y a pas d'ambiguité... le semi interprété ne saurait etre un executable. (Je suis pas tres callée mais en C++, tu peux pas faire d'affectation du genre: mydate = "26/02/2005" ?)

Anne
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 mars 2005 à 16:31
ben non pas possibe, comme dit plus haut faut d'abord parser la chaine pour décortiquer tous les entiers, les convertir de ascii vers binaire, regarder la cohérence ("30/02/2005" exclus par exemple), vérifier la plage de valeurs admises ("20/12/45899" admis ?), etc...
Si tout ceci est vérifié on entre dans l'algo de conversion en virgule flottante 64 bits (OLE date) et seulement maintenant on affecte ce 64 bits dans mydate.

ciao...
BruNews, MVP VC++
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
3 mars 2005 à 16:45
BruNews> Je ne suis toujours pas d'accord avec toi désolé, VB n'est plus interprèté depuis les versions 5 et 6 puisqu'on peut le compiler en native code au lieu de pseudo-code (on a le choix) et que cela fasse appel à une runtime quel importance ? C'est similaire aux APIs... et qui n'utilise pas d'API ? Sinon je suis d'accord, il faut vite passer au .Net ;).


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 mars 2005 à 17:07
Allez Warning, je ne dénigre pas VB, il en faut pour tous les niveaux (de prix surtout).
Si VB produisait du natif, on pourrait:
- écrire une dll pour du hook système.
- retourner son propre code d'erreur en sortie de processus.
- accéder directement à la mémoire.
etc, etc...

Une API fournit des points d'entrée sur un systéme, une virtual machine traduit un script en appels natifs vers une API, il y a tout de même un monde d'écart.

ciao...
BruNews, MVP VC++
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
3 mars 2005 à 17:39
Une API fournit des points d'entrée sur un systéme, une virtual machine traduit un script en appels natifs vers une API, il y a tout de même un monde d'écart.

Tu vois du script ou dans le VB ? Là faut que tu m'explique...Lors de la compilation le code VB n'existe totalement plus et je ne vois pas pourquoi tu parles de script. De toutes façon on arrive jamais a mettre d'accord les développeurs de differents languages d'accord .


Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0
cs_Anne Onyme Messages postés 19 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 22 juin 2005
3 mars 2005 à 17:44
Okay... Vu comme ca c'est sur... (j'avais compris de travers, je pensais a une chaine de caractères...). BruNews, je comprend ce que tu dis mais alors ce vb6fr.dll concretement, il contient quoi que ne pourrait pas contenir ue autre dll system ? Ma question initiale n'etait pas (obligatoirement) de faire un .exe qui n'en aurait pas besoin mais un .exe qui le contienne... (je sais pas ca n'a peut etre aucun sens ce que je dit la...). Le truc c'est que quand on fait un .exe en Vb, on peut pas l'executer sans cette satanée dll... alors sincerement, y en a t il un parmis vous qui ne trouve pas stupide de pouvoir faire tant de choses avec Vb et de ne meme pas etre capable au moins de faire une amorce (un "setup.exe" en gros) qui soit capable de copier cette dll AVANT d'en avoir besoin...
Je sais pas... ca me paraitrait la moindre des choses...

Anne
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 mars 2005 à 17:55
Mais c'est comme pour tout autre langage interprété (java idem) et pas spécifique à VB, on est prié de faire un setup qui se chargera de poser le runtime nécessaire. Ce setup contiendra toujours un setup.exe en code natif qui s'occupera de la copie des DLLs, OCX et autres bidules ainsi de leur inscription.
Si vraiment tu veux faire un exe autonome que tu mettras en téléchargement sur le net, alors là pas d'alternative faudra l'écrire en C comme tout le monde.

ciao...
BruNews, MVP VC++
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
3 mars 2005 à 17:57
Il y a quelques programmes qui permettent de faire ça, mais je n'ai pas d'adresse en tête... Mais ça existe.


Warning
Admin Codes-Sources.com

http://www.decompiler-vb.net/
0
cs_Warning Messages postés 516 Date d'inscription samedi 3 février 2001 Statut Membre Dernière intervention 24 octobre 2006 2
3 mars 2005 à 18:00
Et Delphi dans tout ça ? Il n'y as pas que le C dans la vie! lol

Warning
Admin Codes-Sources.com
http://www.decompiler-vb.net/
0
cs_Anne Onyme Messages postés 19 Date d'inscription jeudi 24 février 2005 Statut Membre Dernière intervention 22 juin 2005
3 mars 2005 à 18:32
Bah voila merci... c'etait bien la reponse que j'attendais BruNews... elle ne me satisfait pas mais elle me convient... C'est dommage que Vb ne puisse pas faire une copie de fichiers bete et méchante tout seul...
Warning> tu parles d'eventuels soft qui "créeraient" un .exe qui serait en fait l'ammorce d'un prog fait en Vb ? ou d'un language a part entiere ?
BruNews> c'est vrai pour le Java mais en Java, on fait pas de .exe au mieu on fait un .jar qui de toute facon ne s'executera pas sans la JVM (du fait qu'il s'agisse precisement d'un language semi-compilé). Je pensais que les languages compilés offraient justement la possibilité d'interagir directement avec le system environnent (expliquant justement que le code ne soit pas portatif). Ca parait pas si debille comme ca... il existe bien une API windows qui permet de copier des fichiers, non ?
Alors si je vous comprend bien, quand on maitrise 2 languages tels le Vb et le Java avec quelques petites connaissances en C (avec une merde de compilateur de Borlan 5.02) on est pas capable de faire un setup propre ? Et donc effectivement, tant qu'on ne maitrise pas le VC++ et/ou l'Assembleur (et/ou le Delphi?) on peut pas pretendre a diffuser un joli truc ou t'as qu'as cliquer sur le setup.exe et roulez jeunesse...?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 mars 2005 à 18:47
VB dispose de son assistant empaquetage et Delphi se sert de Instashield, dans les 2 cas le setup.exe est fourni.

CopyFile() en API.

ciao...
BruNews, MVP VC++
0
Rejoignez-nous