Pb appel Dll en VB.Net depuis VBA word [Résolu]

Messages postés
16
Date d'inscription
mercredi 16 avril 2003
Dernière intervention
4 mai 2011
- - Dernière réponse : amoum
Messages postés
5
Date d'inscription
dimanche 23 mars 2008
Dernière intervention
17 février 2009
- 3 avril 2008 à 21:01
Bonjour,

je viens vers vous car je pense avoir épuisé Google sur le sujet.

Voilà mon problème : j'ai fait une dll en VB.Net avec visual studio express 2005 pour gérer les doc XML dans les versions de word ne les gérant pas (word 2003 standard et avant).
La dll est signé, avec un fichier de clé de nom fort, elle est rendue visible par COM. Les fonctions ont été rendu visibles par COM, etc,...
Sur mon pc (win xp sp2) où j'ai créé la dll, tout se passe bien. J'ai enregistré la dll avec regasm (regasm madll.dll /tlb:maddll.tlb /codebase) et gacutil (je ne sais pas si c'était nécessaire pour ce dernier, mais bon je l'ai fait).
Tout marche bien, les fonctions de la dll est appelée dans le code vba de word ( après avoir coché madll.tlb comme réf).
Je veux distribuer maintenant mon appli. J'utilise Inno setup, je copie ma dll dans le dossier système du pc, et j'enregistre la dll avec regasm (code ci-après).

"procedure myinstall();
var
  ResultCode: Integer;
  chemin: string;


begin
      chemin := ExpandConstant('{win}\Microsoft.NET\Framework\v2.0.50727\regasm.exe ');


      if Exec(chemin ,'madll.dll /tlb:madll.tlb /codebase',  ExpandConstant('{sys}'), SW_SHOW, ewWaitUntilTerminated, ResultCode) then begin
  //    MsgBox('OK', mbInformation, MB_OK);
      end else begin
      MsgBox('An error occured during madll.dll registration', mbInformation, MB_OK);
      end;
end;"

Quand j'installe, tout se passe bien, il n'y a pas de soucis. Lorsqu'on ouvre le modèle word, aucune erreur à la compil.
Le problème est, après déclaration de l'objet, quand j'appelle une des fonctions de la dll. J'ai l'erreur "Automatio Error n -2146232576 (80131700)"  sans autres détails.

J'ai lu pas mal de trucs là-dessus, même le problème dont ils parlent sur microsoft KB908002. Mais pourquoi cela ne macherait sur l'un des pc et pas sur l'autre ?? (apparemment ce sont les mêmes : win xp sp2, office, framework, ...)

Je ne vois vraiment pas ce qui cloche...

Si quelqu'un a une idée, je suis super preneur .

Merci,

IMX
Afficher la suite 

Votre réponse

8 réponses

Meilleure réponse
Messages postés
16
Date d'inscription
mercredi 16 avril 2003
Dernière intervention
4 mai 2011
3
Merci
Finalement, j'ai installé le patch KB908002sur la machine où j'ai installé l'appli et ça marche ! J'ai peut-être (surement) mal lu les explications sur le site de microsoft. Je pensais que c'était lié à visual studio express lors de la création de la dll. Cela veut quand même dire qu'il faut que je prévienne les gens que s'ils ont visual studio sur leur pc, il faut installer le patch avant d'utiliser le fichier word.

En tout cas merci pour tes réponses edt992.

IMX

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de IMX
Messages postés
18
Date d'inscription
mercredi 19 juillet 2006
Dernière intervention
10 avril 2008
3
Merci
Le patch est effectivement à installer sur les machines cibles, mais même si elles n'ont pas VS dessus.

En fait, pour être plus précis, ce patch est à installer uniquement sur la machine qui compile l'application à diffuser, mais il faut sélectionner ce patch comme prérequis sous l'onglet Publication, ce qui aura pour effet de diffuser 3 fichiers supplémentaires avec le programme, qui sont :
<li>extensibilityMSM.msi</li><li>lockbackRegKey.msi</li><li>office2003-kb907417sfxcab-ENU.exe</li>C'est ces fichiers qui devront être exécutés sur les machines cibles pour que le programme diffusé fonctionne, et non pas le patch
KB908002 lui-même, ce dernier provoquant un message d'erreur si VS n'est pas installé.

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 106 internautes ce mois-ci

Commenter la réponse de edt992
Messages postés
18
Date d'inscription
mercredi 19 juillet 2006
Dernière intervention
10 avril 2008
0
Merci
J'avais le même genre de problème, mais pour un composant Net exposé sous forme de controle (et pas de libairie) activex. Il marchait en VB6, mais en VBA ca marchait que sur certaines machines. Sur d'autres, j'avais des erreures variées, parfois celle que tu indique. En fait, même, ça marchait avec certains utilisateurs et pas d'autres sur une même machine ! J'ai fini par faire un rapprochement (sans garanti) ça marchait toujours avec un compte standard, et jamais avec un compte administrateur (un comble!)

J'ai installé le patch [c.aspx?u=aHR0cDovL3N1cHBvcnQubWljcm9zb2Z0LmNvbS9zZWFyY2gvZGVmYXVsdC5hc3B4P21vZGU9ciZhbXA7cXVlcnk9a2I5MDgwMDImYW1wO2NhdGFsb2c9TENJRCUzRDEwMzMmYW1wOzEwMzNjb21tPTEmYW1wO3NwaWQ9Z2xvYmFs KB908002] dont tu parles, ça sa semble avoir résolu mon problème...
Commenter la réponse de edt992
Messages postés
16
Date d'inscription
mercredi 16 avril 2003
Dernière intervention
4 mai 2011
0
Merci
Merci pour ton message, j'ai l'impression que je ne suis pas sorti de l'auberge !!! Je vais essayer de refaire la dll maintenant que j'ai installé le patch, on verra bien...

IMX
Commenter la réponse de IMX
Messages postés
18
Date d'inscription
mercredi 19 juillet 2006
Dernière intervention
10 avril 2008
0
Merci
Le patch a été effectif dès qu'il a été installé, pour moi. Je n'ai pas eu besoin de recompiler quoique ce soit !
Commenter la réponse de edt992
Messages postés
16
Date d'inscription
mercredi 16 avril 2003
Dernière intervention
4 mai 2011
0
Merci
De toutes façons, ça ne marche pas...

Je vais essayer de désinstaller tout, je vais peut-être installer visual studio express 2008, soyons fou....

IMX
Commenter la réponse de IMX
Messages postés
16
Date d'inscription
mercredi 16 avril 2003
Dernière intervention
4 mai 2011
0
Merci
Merci beaucoup !!!

Au plaisir.

IMX
Commenter la réponse de IMX
Messages postés
5
Date d'inscription
dimanche 23 mars 2008
Dernière intervention
17 février 2009
0
Merci
Salu a tous le monde je veux acceder au port parallele et je ne sais pas comment utiluser le fichier dll sachant que ma language choisite est  vb.
Svp si vous avez une documentation sur l'utilusation de ce fichier envoyez la moi
Merci pour votre attention
Commenter la réponse de amoum

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.