Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
6639 connectés 

  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Comment connaitre les librairies installées?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Comment connaitre les librairies installées?

n°977548
Yoyo@
Posté le 10-02-2005 à 12:30:09  profilanswer
 

Salut,
 
Je développe une petite appli utilisant ADO 2.6 et une base Access.
 
Et je suppose que si la machine cible ne possede pas la bonne librairie, alors l'appli ne marchera pas.
 
Mais comment faire pour connaitre les librairies que possede une machine?
 
Et sinon, puis je accéder sur la machine cible a des fichiers Access (par mon programme) si la machine cible ne possede pas Access?
 
Merci.

mood
Publicité
Posté le 10-02-2005 à 12:30:09  profilanswer
 

n°977557
Yoyo@
Posté le 10-02-2005 à 12:38:55  profilanswer
 

Ah oui, et je précise que je souhaite connaitre ces librairies sans utiliser d'environnement VB ou autre, car je voudrais avoir cette liste pour n'importe quelle machine.

n°977595
FlorentG
Posté le 10-02-2005 à 13:39:02  profilanswer
 

Le mieux c'est de redistribuer les MDAC avec ton application, qui contiennent toutes les DLL d'accès aux données genre ADO, ADOX, DAO, OLEDB, etc.

n°977643
Yoyo@
Posté le 10-02-2005 à 14:14:15  profilanswer
 

D'accord, donc, tu ne connais pas de moyen de savoir facilement les librairies présentes?
 
Sinon, imaginons que je développe une appli en utilisant ADO 2.8, mais n'utilisant que des méthodes présentes dans les versions précédentes, est ce qu'un PC possédant ADO v2.5 pourra faire tourner mon appli?

n°977652
FlorentG
Posté le 10-02-2005 à 14:20:21  profilanswer
 

Bof, on sait jamais ce qu'il y a eu comme changement. Les mêmes fonctions peuvent avoir des résultats différents :/

n°977653
FlorentG
Posté le 10-02-2005 à 14:20:52  profilanswer
 

Et de toute manière quand on référence du 2.8, si l'appli trouve du 2.5, elle va faire une belle erreur :(

n°977696
Yoyo@
Posté le 10-02-2005 à 15:04:06  profilanswer
 

Ah bon?
 
Car d'une part, je vois que le fichier, que ce soit poiur ADO 2.5 ou ADO 2.8, est le meme : msado15.dll  
 
Et moi meme, plus habitué au monde C++, l'un des gros avantages des DLLs, si on s'y prend correctement, est qu'on puisse les upgrader, tout en gardant une sorte de rétro compatibilité pour les anciens programmes utilisant des anciennes versions (ou vice versa), du moment que les signatures des fonctions restent les memes (meme si l'implémentation interne change)

n°977700
FlorentG
Posté le 10-02-2005 à 15:08:45  profilanswer
 

Moi j'avais justement le problème, j'utilisai les ADOX (donc un truc de ADO pour créer des base access via du code) 2.8. Après un formatage (et donc j'était revenu aux 2.7), ça refusait de prendre les 2.7 à la place des 2.8 :(

n°977707
Yoyo@
Posté le 10-02-2005 à 15:11:04  profilanswer
 

Donc, le mieux est toujours de faire référence dans son code VB aux librairies d'une version assez "vieille" du genre 2.6 de maniere a ce que tous les ordis disposant du MDAC minimum 2.6 (installé par exemple avec SQL Server 2000) puisse tourner avec notre prog, et peut etre aussi les systemes avec une version plus avancée?

n°977709
FlorentG
Posté le 10-02-2005 à 15:12:24  profilanswer
 

En gros, ouais...

mood
Publicité
Posté le 10-02-2005 à 15:12:24  profilanswer
 

n°977728
Yoyo@
Posté le 10-02-2005 à 15:32:01  profilanswer
 

Au fait, une question... Tu as un nForce2 toi aussi?

n°977733
FlorentG
Posté le 10-02-2005 à 15:35:35  profilanswer
 

Euh... non je crois pas :D J'ai un machin SIS (ordi portable)

n°977822
Yoyo@
Posté le 10-02-2005 à 16:44:35  profilanswer
 

Oups, mdr, je me suis trompé de topic (tu dois me prendre pour un fou :D) Il s'agissait ici d'un topic sur un probleme que je rencontre avec mes enceintes ;)

n°977825
FlorentG
Posté le 10-02-2005 à 16:46:38  profilanswer
 

Arf :D

n°977835
Yoyo@
Posté le 10-02-2005 à 16:56:24  profilanswer
 

Tiens, tant qu'on y est, vu que tu as l'air d'avoir de la bouteille en VB, je me posais une question...
 
Sous VBA Access, les combo boxes et list boxes pouvaient afficher plusieurs colonnes... Est ce que c'est possible sous VB également? Je trouvais cette possibilité hyper pratique...

n°977836
FlorentG
Posté le 10-02-2005 à 16:57:11  profilanswer
 

Ca doit être possible ouais, c'est les mêmes contrôles je crois... Faut regarder au niveau des propriétés, style nombre de colonne, etc :)

n°977847
Yoyo@
Posté le 10-02-2005 à 17:13:43  profilanswer
 

Bah moi aussi, je pensais que c'étaient les memes controles, mais je me rends compte que les propriétés sont différentes (par exemple, pour la List Box...)
 
Ouh la la, on m'avait toujours dit que la transition VBA=>VB était aisée, mais j'ai l'impression qu'on y perd au change... (ou alors peut etre n'ai je pas regardé au bon endroit?)

n°977859
knakes
Posté le 10-02-2005 à 17:29:32  profilanswer
 

Les libertés sont plus grandes en VB qu'en VBA. (sauf pour un travail précis dans une application comme Word , Excel ...)

n°977879
FlorentG
Posté le 10-02-2005 à 17:50:21  profilanswer
 

Ouaip, normalement on peut faire plus de choses en VB par rapport à VBA.

n°977892
Yoyo@
Posté le 10-02-2005 à 18:07:10  profilanswer
 

Bah je veux bien, c'est pour ca que je m'en réjouissais.
 
Mais que veut dire "libertés plus grandes"? Car si c'est au détriment de la facilité et la rapididté, alors pour mon appli, autant me tourner vers C++ ou la liberté est quasi totale.
 
Mais alors, il est possible ou pas d'avoir des listes a plusieurs colonnes comme sous VBA?

n°977907
knakes
Posté le 10-02-2005 à 18:25:57  profilanswer
 

Après un rapide petit détour par Excel, je peux te dire que c'est réalisable.
Pour cela il te suffit d'ajouter le contrôle ' msflexgird ' à ta feuille et tu as une liste à plusieurs colonnes.

n°977926
Yoyo@
Posté le 10-02-2005 à 19:07:24  profilanswer
 

Mais il n'y a pas moyen d'afficher une liste a plusieurs colonnes comme dans Access? Je tombe un peu des nues...
 
Et si j'utilise des controles ActiveX externes, est ce que mon appli va marcher sur d'autres applis?

n°977938
knakes
Posté le 10-02-2005 à 19:33:37  profilanswer
 

• Normalement oui. Je n'ai jamais essayé.
 
• Les controles ActiveX sont rétilisables tant que tu les référencies correctement. Dans VB6, fait un clic droit sur la boîte à outils et fait 'Ajouter des composants ...'

n°977949
Yoyo@
Posté le 10-02-2005 à 20:05:22  profilanswer
 

Tiens, je crois que je viens de trouver mon bonheur:
Le controle "ComboBox" issu du groupe de controles "MS Forms 2.0"
 
Mais par contre, est ce qu'il va falloir que la machine cible installe quelque chose ou pas? Telle est la question...
 
Il y avait un truc que j'aimais bien aussi avec les ListBox Access, dans le cadre d'une source de données, c'était la possibilité de copier toutes les donnees dun coup dans la ListBox, de maniere Ultra rapide, avec une méthode du genre CopyData... Bon, tout ca reste a voir!
 

n°978015
knakes
Posté le 10-02-2005 à 21:08:11  profilanswer
 

Il faut que tu cherches un peu.  :D  
Pour ce qui est de tes contrôles : pour fonctionner, la machine client (celle sur laquelle tournera l'application) doit être munie au minimun de ' vb6fr.dll '(sinon un message t'informera que le contôle est manquant et le programme ne s exécutera pas.)  :o .
Pour ce qui est des contrôles supplémentaires (que tu ajoutes en faisant ' Projet ' > ' Composants ... ') il faut que les fichiers .ocx ou .dll dont tu fais référence soient sur la machine cliente. Si ce n'est pas le cas, un coup de copier/coller du contrôle peut faire l'affaire. ;)  
J'ai oublié un truc : les éléments se trouvent en général dans ' C:\WINDOWS\System32\ ' (XP & 2000) ' C:\WINDOWS\System\ ' pour le reste.


Message édité par knakes le 10-02-2005 à 21:09:52
n°978132
Yoyo@
Posté le 10-02-2005 à 23:24:44  profilanswer
 

Mais un controle de type ocx par exemple doit etre enregistré, non? Sur la machine cliente? (dans le sens "registered"?
 
Sinon, a quoi sert vb6fr.dll? Pour ma part, vu que tout mon OS, ainsi que mon ordi et mon Visual Studio viennent d'Angleterre, je suppose qu'il me faudra un autre fichier, non? Je vais me renseigner pour cela.

n°978161
knakes
Posté le 10-02-2005 à 23:59:50  profilanswer
 

Si tu a Visual Studio .Net, il te faudra le .NET framwork de microsoft
Sinon cherche une dll contanant 'VB6'
Sinon effectivement il faudrait les enregistrer dans le système client mais bon à défaut de, moi je copie/colle et c'est passé.

n°979004
Yoyo@
Posté le 11-02-2005 à 17:08:07  profilanswer
 

Salut,
 
Me revoila...
 
Bon, quand j'essaie de comprendre les choses, je me perds un peu.
 
Alors, voici en gros le truc...
 
Je prends un projet VB tout simple, que je compile.  
Je fais cela avec mon Laptop (Win2k et Visual Basic 6 versions anglaises).
Alors, je lance Dependency Walker, et rien de spécial a signaler.
 
Je prends la meme appli compilée, et je la copie sur mon ordi de bureua (WinXP version francaise). La, je lance l'appli, et ca marche normal.
 
Alors, je lance Dependency Walker, et la, das le listing lors du profiling (cad que je lui demande de lancer l'appli pour détecter toutes les dll appelées), il me dit a un moment en rouge:  
 

Citation :


LoadLibraryA("C:\WINDOWS\system32\VB6FR.DLL" ) returned NULL. Error: Le module spcifi est introuvable (126).


 
Mais ca n'empeche pas l'appli de fonctionner...
 
Je ne comrends pas comment il peut chercher a trouver ce vb6fr.dll, alors que sur l'ordi sur lequel jai compilé lappli (mon portable), l'OS et VB6 sont en anglais et qu'en plus, vb6fr.dll n'existe nulle part sur le disque...
 
Vous auriez une explication?

n°979058
knakes
Posté le 11-02-2005 à 18:14:31  profilanswer
 

Cela s'appelle la magie de Windows :).
Là j'avoue ne pas savoir.
A moins que VB6fr.dll ne reprenne qu'une partie du Runtime de VB6.
(Le runtime est un fichier compressé contenant tous les fichiers (généraux) pour éxécuter une application.)

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  VB/VBA/VBS

  Comment connaitre les librairies installées?

 

Sujets relatifs
Connaitre l'indice de l'item cliqué dans un jpopup menu [résolu]librairies des grands nombres : GMP vs NTL ?
[CSS vs IE] comment connaitre les incompatibilité CSS IE ?Comment connaitre le pipe nommé d'un appli XP
Socket: connaître l'adresse ip du client qui se connect à un serveurConnaître la plus grande valeur d'un float ? [Résolu]
Librairies de Windows Xstreams : connaître la taille totale du fichier avant d'écrire
[VBA Excel] [Résolu] Problème de librairies de fonctions vbaPb de librairies avec Visual
Plus de sujets relatifs à : Comment connaitre les librairies installées?


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)