[C++/XLL] Portabilité d’une XLL compilée en Visual C++ 2008

Portabilité d’une XLL compilée en Visual C++ 2008 [C++/XLL] - C++ - Programmation

Marsh Posté le 06-10-2010 à 11:21:20    

Portabilité d’une XLL compilée via Visual C++ 2008

 

Bonjour,
L’outil de notre boite est basée sur Excel auquel nous avons ajouté une librairie de fonctions. Nous sommes en train de nous en débarrasser (car payante) en programmant notre propre librairie. Nous avons choisi (après plusieurs essais dans différents environnements) de le faire en c++ puis de la passer en XLL.

 

L’ordinateur sur lequel nous programmons notre librairie est équipé de Visual C++2008, les autres machines (4) ne le sont pas. Toutes les machines sont équipées d’Excel 2010, OS, Windows XP. L’idée est donc de pouvoir utiliser la xll sur les autres machines sans forcément avoir à installer visual c++.

 

La librairie XLL est à usage strictement propriétaire : elle ne sera pas vendue ou mise à disposition de nos clients…

 

Voici les différentes étapes que j’ai suivies :

 

J’ai construit une xll à l’aide de visual C++ 2008.
J’ai installé le ToolKit 2010 microsoft.
Ma xll fonctionne très bien sur mon pc : je peux utiliser toutes les fonctions que j’ai créées dans la xll.
Je souhaite utiliser cette xll sur un autre pc qui n’est pas équipé de visual C++ 2008.
Le problème, c’est qu’il ne reconnaît plus le format de la xll. Le message qui apparaît est le suivant : « Le format du fichier que vous tentez d’ouvrir est différent de celui spécifié par l’extension de fichier… »

 

J’ai essayé plusieurs choses :
- compiler en mode release
- compiler en multithread (/MT)
- installer le module « Package redistribuable Microsoft Visual C++ 2008 (x86)
- utiliser l’outil « dependencywalker » pour compléter les librairies manquantes dans mon Système32

 

Rien à faire, si je n’installe pas visual c++ 2008 sur le pc, je n’arrive pas à lire ma xll. Si quelqu’un à une bonne idée, je suis preneur :)
Par avance merci
:jap:

 

EDIT: j'ai hésité à poster dans cette sous catégorie, si vous pensez que ça peut être mieux ailleurs, je le bougerai...


Message édité par hush hush le 06-10-2010 à 11:30:39
Reply

Marsh Posté le 06-10-2010 à 11:21:20   

Reply

Marsh Posté le 06-10-2010 à 14:36:14    

Bon, je ne connais pas trop les XLL, mais il me semble que c'est bien expliqué dans cette page: http://support.microsoft.com/kb/178474
 
Notamment :

Using the Add-In with Microsoft Excel
   1. Start a new workbook in Microsoft Excel.
   2. Click Add-ins on the Tools menu. Browse to add myaddon.xll and click OK. Notice that when you click OK in the Add-ins dialog, the xlAutoOpen() function runs.
   3. Click M.O.T.D on the MyMenu menu. When your menu item is clicked, the MyMotd function runs to display a MessageBox with a quote such as "Rebekah says 'An Apple a day, keeps the doctor away!'".
   4. In a cell, add the following formula:
 
      =MYFUNC(2,6)
 
      MYFUNC returns 12, the product of 2 and 6.
 
   5. Click Add-ins on the Tools menu. Clear the add-in check box and click OK. Notice that when you click OK in the Add-ins dialog box, the xlAutoClose function runs.


 
Cela dit, il pourrait y avoir des problèmes de runtime. Genre ta DLL va probablement être liée à une version plus récente de la msvcrt qu'il y a d'installé sur les autres PC. Normallement il suffit d'installer cette DLL pour que ça fonctionne, il y a déjà des packages tout prêt dans VS. En tout cas, pas la peine d'installer Visual Studio sur le poste des utilisateurs.

Message cité 1 fois
Message édité par tpierron le 06-10-2010 à 14:37:11
Reply

Marsh Posté le 06-10-2010 à 14:41:28    

Oui c'est à ça que sert le module « Package redistribuable Microsoft Visual C++ 2008 (x86) »


---------------
Be the one with the flames.
Reply

Marsh Posté le 06-10-2010 à 14:58:32    

tpierron a écrit :

Bon, je ne connais pas trop les XLL, mais il me semble que c'est bien expliqué dans cette page: http://support.microsoft.com/kb/178474
 
Notamment :

Using the Add-In with Microsoft Excel
   1. Start a new workbook in Microsoft Excel.
   2. Click Add-ins on the Tools menu. Browse to add myaddon.xll and click OK. Notice that when you click OK in the Add-ins dialog, the xlAutoOpen() function runs.
   3. Click M.O.T.D on the MyMenu menu. When your menu item is clicked, the MyMotd function runs to display a MessageBox with a quote such as "Rebekah says 'An Apple a day, keeps the doctor away!'".
   4. In a cell, add the following formula:
 
      =MYFUNC(2,6)
 
      MYFUNC returns 12, the product of 2 and 6.
 
   5. Click Add-ins on the Tools menu. Clear the add-in check box and click OK. Notice that when you click OK in the Add-ins dialog box, the xlAutoClose function runs.


 
Cela dit, il pourrait y avoir des problèmes de runtime. Genre ta DLL va probablement être liée à une version plus récente de la msvcrt qu'il y a d'installé sur les autres PC. Normallement il suffit d'installer cette DLL pour que ça fonctionne, il y a déjà des packages tout prêt dans VS. En tout cas, pas la peine d'installer Visual Studio sur le poste des utilisateurs.


 

Riot a écrit :

Oui c'est à ça que sert le module « Package redistribuable Microsoft Visual C++ 2008 (x86) »


 
Merci pour vos réponses, mais je suis toujours bloqué..
J'ai bien installé le module Package redistribuable Microsoft Visual C++, ça ne donne rien.
Je suis aussi passé par le menu excel pour installer la xll en add-in, ça ne marche pas non plus,
J'ai versifié les versions de la dll msvcrt, on a la même sur toutes les machines..
Pour le moment, la xll ne peut être lue par Excel que si Visual studio est installé sur l'ordinateur...
Edit:
La question, pour ceux qui savent.. c'est, que se passe t'il à l'installation de Visual Studio qui fais que Excel supporte ma xll...??
N'y aurait'il pas un moyen de "simuler" l'installation de VS en ne mettant que les fichiers qui permettent la lecture de ma xll?
:jap:


Message édité par hush hush le 06-10-2010 à 15:01:41
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed