DLL C++ introuvable dans VB !

cs_Argile92 Messages postés 29 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 30 mars 2009 - 6 mars 2009 à 16:04
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 - 9 mars 2009 à 14:42
Bonjour à tous,

J'ai crée une DLL C++ que j'utilise dans Excel. Tout marche bien!

Sauf que voilà, lorsque je change de PC, où Visual Studio n'est pas installé, impossible d'accéder à ma DLL...
Pourtant l'adresse de la DLL est bonne lorsque je déclare mes fonctions. Rien à faire, VB ne trouve pas ma DLL

Cela est dû à l'inexistance de Visual Studio sur le PC (et dans ce cas là les DLL perdent tout intérêts), ou il y a-t-il une manipulation à effectuer??

Merci beaucoup

33 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2009 à 16:25
où as tu placé ta Dll ?
0
cs_Argile92 Messages postés 29 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 30 mars 2009
6 mars 2009 à 16:32
J'ai essayé sur le Bureau, dans "Mes Documents" ou dans un autre dossier, mais rien ne marche...

Je travaille sur des PC d'entreprise: le mien possède Visual Studio mais pas les autres et j'aimerai faire une application Excel performante utilisable par tous (d'où l'utilisation des DLL)

Cela t'aide-t-il ?
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
6 mars 2009 à 16:32
Bonjour,

A tu enregistrer ta DLL dans win ?
(Normalement ce n'est pas obligatoire, mais sa permet d'accéder à ta DLL quelque soit le dossier où elle à été installé, perso généralement je crée un sous dossier dans "C:\Program Files\Common Files" pour stocké mes DLL(s), par InnoSetup sa vas tout seul )

Pour enregister une DLL : RegSrv32 (ici)

 Amicalement <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-pa
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
6 mars 2009 à 16:34
Oups un oublie :
Le deuxième gros intérêt d'enregistrer ses DLL est qu'il n'est plus nécessaire de préciser dans le code le dossier où elle est stocké pour y accéder.

 Amicalement <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-pa
0

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

Posez votre question
cs_Argile92 Messages postés 29 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 30 mars 2009
6 mars 2009 à 16:39
Dans "Exécuter" j'ai bien tapé la commande suivante: regsvr32 "Adresse DLL" et j'obtiens l'erreur suivante: LoadLibrary( adresse ) failed - This Application has failed to strat because the application configuration is incorrect. Reinstalling the application may fix this problem.

Une idée pour réparer tout ça?
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2009 à 16:40
On n'enregistre que les dll ActiveX, Polack77

une dll doit est cherchée:
dans le repertoire de l'exe lancé
dans les repertoires que l'on peut spécifier via APIs
dans les repertoires mentionnés dans le %PATH%
...

C'est pour ça que bien souvent, on te dit d'aller les placer dans C:\Windows\System32

La dll est a placer dans le repertoire de VB6 si tu souhaites lancer ton fichier VBP, car c'est lui l'exe
0
cs_Argile92 Messages postés 29 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 30 mars 2009
6 mars 2009 à 16:43
J'ai essayé de mettre ma DLL dans le même repertoire que mon application Excel, mais cela ne marche toujours pas...

Dans ce repertoire, je dois mettre uniquement mon fichier .DLL ou dois-je également y ajouter tous les autres petits fichier générés? je parle du .EXP, .ILK, .LIB et .PDB qui se génèrent lorsque je compile mon programme C++

Merci !
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2009 à 16:47
seul ton fichier dll

=> pas dans le repertoire de ton fichier .xls, donc, mais encore une fois, dans le repertoire de Excel.exe...

ou un des repertoires systeme.

Enfin, tout cela n'est valable que si tu ne déclare que le nom de ta dll, et non pas le chemine :

Declare Function MaFonction Lib "C:\SuperLib\SuperV1.dll" () As Long

ou

Declare Function MaFonction Lib "SuperV1.dll" () As Long
0
cs_Argile92 Messages postés 29 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 30 mars 2009
6 mars 2009 à 16:50
Mais pourquoi cela marche-t-il parfaitement sur le PC où Visual Studio est installé ?? J'ai beau mettre ma DLL n'impote où, il l'a trouve..
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2009 à 16:56
tu as un message, qui dit que ca ne fonctionne pas ?

te faut peut etre un minimum de dependances... depend de ta dll..(runtime vc)
0
cs_Argile92 Messages postés 29 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 30 mars 2009
6 mars 2009 à 17:02
Sur mon poste la DLL marche parfaitement

Sur les autres pc, j'ai l'erreur suivante:

"Run-time error '48':
   File not found "Adresse"
0
Polack77 Messages postés 1098 Date d'inscription mercredi 22 mars 2006 Statut Membre Dernière intervention 22 octobre 2019 1
6 mars 2009 à 17:20
Les add in dot net on été installé ? (dés fois que ???)
Ici pour le téléchargement (télécharge plutôt la version complète sa éviteras de le re-télécharger pour chaque post, Package redistribuable X86 ou [Package redistribuable X64 Package redistribuable X64])
(lient de M.S. )
Si non aucune idée dzl
Bon courage

 Amicalement <!-- /* Style Definitions */ p.MsoNormal, li.MsoNormal, div.MsoNormal {mso-style-pa
0
cs_Argile92 Messages postés 29 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 30 mars 2009
6 mars 2009 à 17:26
Tu sais, je viens d'arriver dans la boîte et Visual Studio n'était même pas installé... J'ai dû faire une demande pour l'avoir et je pense que aucun PC ne possède ton add-in...

Avec cette add-in, ça devrait marcher?
Elle est gratuite?

(je peux pas là télécharger, la firewall de la société m'en empete...)
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
6 mars 2009 à 18:15
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
8 mars 2009 à 22:30
Ne marche pas tout simplement parce que la DLL n'est pas correctement compilée (voire écrite également).


Regarde ici, tu verras que la dll peut se mettre dans dossier du classeur:
http://www.vbfrance.com/code.aspx?ID=33938


Une DLL qui doit pouvoir être utilisée par TOUT langage, à fortiori depuis un interprété doit:
- Se faire en C (ou ASM, c'est idem).
- Compiler en mode C.
- Exporter en stdcall et sans déco des noms (mode C).
- Compiler en RELEASE avec full optimisation.


Le C++ n'a rien à faire dans cette galère.


Tu trouveras ici de quoi faire des projets configurés comme il se doit:
TEMPLATES C/C++ POUR VS 2008
http://www.cppfrance.com/code.aspx?ID=44835

ciao...
BruNews, MVP VC++
0
cs_Argile92 Messages postés 29 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 30 mars 2009
9 mars 2009 à 10:07
Au niveau de l'écriture, il n'y a pas de problème vu que ma DLL marche sur mon poste.

Le problème est lorsque l'on essaye de l'utiliser sur un poste ou Visual Studio n'est pas installé...

Tu dis qu'il y a peut-être unp roblème de compilation: manuellement, que dois-je faire pour selon toi la compiler correctement?

Merci
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 mars 2009 à 10:14
as tu regardé si les toutes les dépendances se trouvent sur l'autre poste ?

http://www.dependencywalker.com/
0
cs_Argile92 Messages postés 29 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 30 mars 2009
9 mars 2009 à 10:17
Je suis sur des postes d'entreprise, et je ne peux malheureusement rien installer seul...

Selon toi, il manquearit l'add-in : Microsoft Visual C++ 2005 Redistributable Package

C'est bien ça?
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
9 mars 2009 à 10:17
Tu fais un projet DLL avec mes templates, tu l'ouvres avec VC++ et tu regardes toutes les options de compil et link.

Avant de distribuer, faut controler avec depends.exe que ton binaire n'est lié qu'aux DLLs de Windows, jamais à msvcrt[xxx].dll ou autre runtime.

ciao...
BruNews, MVP VC++
0
cs_Argile92 Messages postés 29 Date d'inscription lundi 2 mars 2009 Statut Membre Dernière intervention 30 mars 2009
9 mars 2009 à 10:23
BruNews, je suis vraiment désolé, mais je ne peux pas télécharger ton projet afin de voir les options de compilation... (Firewall de la société qui fait chier)

Est-ce que tu pourrais, stp, me donner les options de compilation à effectuer?

Merci beaucoup
0
Rejoignez-nous