VB et compilation EXE - VB/VBA/VBS - Programmation
Marsh Posté le 13-05-2003 à 21:00:33
La compilation en VB n'est pas une véritable compilation. Aucun programme visual basic ne saurait se passer des fameuses DLL...
(au fait... c'est "je me demande comment compilER" )
Marsh Posté le 13-05-2003 à 21:06:19
Oui désolé, je suis une grosse crotte en orthographe.
Pas de compilation avec DLL? Embêtant...
Et pareil pour Access? Pas moyen d'utiliser mon programme sans Access installé sur la machine?
Marsh Posté le 13-05-2003 à 21:09:17
Tu n'as qu'a filer les DLL avec ton exe, tout le monde fait ca!
Marsh Posté le 13-05-2003 à 21:11:30
Oui ben je crois que je vais être contraint...
Dommage, j'aurai voulu une install facile, enfin juste un exe.
Merci.
Marsh Posté le 13-05-2003 à 22:00:41
Spir a écrit : Oui désolé, je suis une grosse crotte en orthographe. |
Pour access je pense que c'est possible de créer un petit soft indépendant, mais je sais pas comment...
Quelqu'un peut confirmer?
Marsh Posté le 14-05-2003 à 00:36:39
Assistant d'empaquetage et déploiement.
-> Tu chois ton projet et tu le laisses faire.
Il va te générer un programme d'install avec toutes les DLL (celles de VB et celles que tu utilises depuis le programme)
Par contre, l'install est merdique, et te demandras de rebooter en plein milieu, il faut alors relander l'install pour finir l'install.
Y'a des softs gratuits qui permettent de faire un install mieu.
Inno Setup par exemple.
Marsh Posté le 14-05-2003 à 08:52:35
Merci beaucoup MagicBuzz, je suis en train de regarder tout ça.
Marsh Posté le 15-05-2003 à 08:08:58
MagicBuzz a écrit : Assistant d'empaquetage et déploiement. |
il peut le faire à la main, sa va aussi vite et c'est tout bénéfique :
- il compile son prog
- avec "depends", il regarde de quoi dépend son *.exe (Ocx, *.Dll,ect...)
- Il récupère le tout
- Il donne ensuite les fichiers en questions + l'*.exe...
Marsh Posté le 15-05-2003 à 18:18:57
cvb a écrit : il peut le faire à la main, sa va aussi vite et c'est tout bénéfique : |
Marsh Posté le 15-05-2003 à 18:43:24
tu ne connais pas la méthode, manifestement ??
je vais donc détailler :
Démarrer > programmes > Microsoft visual Studio 6.0 > Outils Microsoft Visual Studio 6.0 > Depends
Tu arrive à quelques chose comme ça !
il aura tous les fichiers qui dépendent de son *.exe, (*.dll, *.ocx), il n'as plus qu'a les COPIER. Sur une disquette, ou un CD, il mets ses fichiers en questions + son programme compilé. c'est le principe utilisé, dans tous les CD. Eh oui !
Si tu veux faire démarrer un programme, par un autorun, programme fait en VB, c'est cette méthode qu'est utilisé...l'exe, plus les fichier dont-ils dépends à sa racine...
Marsh Posté le 15-05-2003 à 18:51:07
le problème n'est pas que je connaisse pas, sinon je l'aurais dit explicitement
Ce qui m'intrigue, c'est pourquoi conseiller de le faire à la main alors que MagicBuzz a donné quelques bons éléments pour le faire faire par la machine. Si j'ai un automate pour le faire et qu'il le fait bien, je vais pas prendre le temps de le faire à la main, ce qui prendrait forcément plus de temps. Moi je donne mon exe, mes fichiers de données et basta
Marsh Posté le 15-05-2003 à 18:53:48
drasche a écrit : le problème n'est pas que je connaisse pas, sinon je l'aurais dit explicitement |
tu me rassure ! personellement avec cette méthode, je ne pourris pas la Bdr et je vais plus vite que l'assistant !
Marsh Posté le 15-05-2003 à 19:01:24
faut quand même que j'avoue un truc, je ne fais pratiquement jamais de package d'install, mon client a tout ce qu'il faut pour faire ça en interne
Marsh Posté le 15-05-2003 à 19:02:25
drasche a écrit : faut quand même que j'avoue un truc, je ne fais pratiquement jamais de package d'install, mon client a tout ce qu'il faut pour faire ça en interne |
Ah tu vois, que cette merde d'empaquetage est merdique !
Marsh Posté le 15-05-2003 à 19:18:03
non c'est pas ça
c'est juste que c'est une très grosse boîte qui doit gérer une bonne centaine d'applications internes écrites en différents langages et il y a un système de mise à jour plutôt uniforme et assez réussi pour s'occuper de tout ça
nous on s'en fout, on leur livre ce qui est utile et ils se débrouillent pour la distribution
Marsh Posté le 15-05-2003 à 21:53:04
drasche a écrit : le problème n'est pas que je connaisse pas, sinon je l'aurais dit explicitement |
D'autant plus qu'en cas de conflit de version de DLL, il faut mieu faire gérer ça par un programme que à ma main...
Le mieu étant pour ce qui est des DLL faisant elles-même référence à d'autres DLL ! Exemple avec MDAC. L'assistant de VB saura lesquelles distribuer, et lorsque la distribution est impossible "simplement", comme pour MSXML 3.0, il dit qu'il faut joindre l'install de ce programme, et l'installer avant d'installer le programme VB
A la main, on détecte pas ce genre de problèmes.
Marsh Posté le 14-06-2003 à 11:42:25
Merci pour toutes vos réponse.
Mais la base ACCESS ne peut pas être utilisé sans qu'il y est access d'installé sur la machine.
Moi ce que je souhaite c'est que mon programme puisse tourné sur n'importe quel machine même si access n'est pas installé...
Je pense que c'est impossible.
Ai je raison?
Marsh Posté le 14-06-2003 à 12:12:49
Spir a écrit : Merci pour toutes vos réponse. |
Peut etre que je me plante, mais ta base Access, tu y accèdes comment à partir de VB? Via ODBC? Si c'est le cas, ca doit bien etre possible de faire cette install sans Access sur la machine, nan?
Marsh Posté le 15-06-2003 à 09:28:22
Dans ta base access, tu te sert que des tables/requêtes ou si tu te sert aussi de formulaire ?
Parceque si tu te sert pas des formulaires et autres trucs graphiques d'access, tu n'as pas besoin d'access sur la machine, juste d'une version à jour de MDAC
Marsh Posté le 15-06-2003 à 23:31:55
salut spir! conecernant ces fameux dll, effectivement il est possible de les connaitre facilement avec l'assitant d'empaketage de VB, cependant, si je peut te donner un sonseil, n'utilise pas cette m**** compile un setup bidon, au cours de ceci il te demande un repertoire ou il te met tous les fichiers non compréssé, c'est alors à ce momment la que je te conseille setup générator, je ne sais plus ci celui ci est gratuit, mais tu dois pouvoir l'essayer et ensuite l'acheter si il te plait ;x
si tu veux un exemple de paketages créés par ce setup: http://www.speedram.net tu y trouvera mon programme avec le setup créé par setup générator
Enjoy!
Marsh Posté le 16-06-2003 à 13:10:03
Heine a écrit : salut spir! conecernant ces fameux dll, effectivement il est possible de les connaitre facilement avec l'assitant d'empaketage de VB, cependant, si je peut te donner un sonseil, n'utilise pas cette m**** compile un setup bidon, au cours de ceci il te demande un repertoire ou il te met tous les fichiers non compréssé, c'est alors à ce momment la que je te conseille setup générator, je ne sais plus ci celui ci est gratuit, mais tu dois pouvoir l'essayer et ensuite l'acheter si il te plait ;x |
Perso, je préfère innoSetup, y'a un wizard pour VB qui est tout fait, et il est capable à partir du *.vbp de retrouver toutes les dépendances. Faut juste lui fournir l'exe compilé en plus, sinon ça marche pas
Par contre, ce que j'aime pas avec ces trucs à la noix, c'est que si tu as une plateforme de dev Windows 2000 US, à 99 contre 1, ça ne marchera pas quand tu vas l'installer sur un Windows 98 FR, pour cause de conflits de DLL (versions et langage) donc je préfère utiliser la grosse daube qu'est l'assistant de VB, qui met toutes les DLL nécessaires pour les différents environnements, sauf quand je connais à l'avance l'architecture logicielle des clients.
Par exemple, essaie de mettre les DLL de MSXML dans un projet VB, tu vas pleurer. L'assistant VB au moins, il t'indique qu'il n'est pas capable de les intégrer dans le setup, et qu'il faut redistribuer la version complète (téléchargeable depuis le site de M$) car la DLL est trop dépendante de la plateforme pour être intégrer dans un install comme ça.
Donc je pense que même si on n'utilise pas forcément l'assistant de VB pour l'install final, une première passe avec permettra de lever les loups.
Idem pour CDONTS : Entre NT4 et 2000, c'est pas la même DLL, et elles ne sont pas compatibles. Sous Windows 9x, elle est carrément pas supportée. Donc on a vite des problèmes, et l'assistant de VB à l'avantage de le dire avant d'envoyer au pressage les 50 000 copies du logiciel
Marsh Posté le 16-06-2003 à 13:51:09
MagicBuzz a écrit : |
c'est vrai que vu comme ca c'est different, j'avue ne pas avoir encore rencontré ce probleme, j'ai constaté qu'un dll absent windows le cherche en premier dans le repertoire de l'exe, puis system, win etc.. donc dans mon setup je met tout dans le meme repertoire, il ne me semble pas avoir eprouvé de problemes jusqu'a présent.. de plus plus de conflit de version.. le prog utilise SON dll.. mais il est vrai que ca peut paraitre bourin
Marsh Posté le 16-06-2003 à 14:24:10
Bah ouais mais disons qu'en VB, le but du jeu c'est d'utiliser un max de dll systèmes pour pas avoir à faire les siennes (sinon, autant passer au C, qui sera plus puissant et plus rapide )
Marsh Posté le 16-06-2003 à 17:44:13
Spir a écrit : Merci pour toutes vos réponse. |
non tu peux rendre ta base autonome cad qu'elle n'aura pas besoin d'acces pour se lancer. TU as besoin pour cela de la version developper d'office ou tu trouveras le run time d'access.
voila en esperant t'avoir aidé.
Marsh Posté le 03-09-2003 à 09:04:45
MagicBuzz a écrit : Assistant d'empaquetage et déploiement. |
Salut,
Peux tu me dire ou ce trouve cette fonction dans VB ?
Marsh Posté le 03-09-2003 à 09:06:20
+Yann a écrit : |
Dans le menu Démarrer, dans le groupe de programmes de VB
Marsh Posté le 08-09-2003 à 16:45:11
Access n'est pas nécessaire pour accéder à ta bdd, c'est ton programme qui l'attaquera directement, même si Access ou Office n'est pas installé sur la machine cliente.
Marsh Posté le 13-05-2003 à 20:55:33
Bonjour,
je me demande comment compilé un programme VB en exécutable.
Bien sûr VB permet d'enregistrer son programme en EXE, mais il ya un problème de DLL si l'on n'a pas Visual Basic installé sur la machine.
Peut on compilé un programme VB avec sa base access (mon programme intérroge une base de donnée)?