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

IMX 16 Messages postés mercredi 16 avril 2003Date d'inscription 4 mai 2011 Dernière intervention - 24 mars 2008 à 22:04 - Dernière réponse : amoum 5 Messages postés dimanche 23 mars 2008Date d'inscription 17 février 2009 Dernière intervention
- 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

IMX 16 Messages postés mercredi 16 avril 2003Date d'inscription 4 mai 2011 Dernière intervention - 26 mars 2008 à 22:20
+3
Utile
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
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de IMX
edt992 18 Messages postés mercredi 19 juillet 2006Date d'inscription 10 avril 2008 Dernière intervention - 27 mars 2008 à 10:05
+3
Utile
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é.
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de edt992
edt992 18 Messages postés mercredi 19 juillet 2006Date d'inscription 10 avril 2008 Dernière intervention - 25 mars 2008 à 11:48
0
Utile
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
IMX 16 Messages postés mercredi 16 avril 2003Date d'inscription 4 mai 2011 Dernière intervention - 25 mars 2008 à 21:58
0
Utile
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
edt992 18 Messages postés mercredi 19 juillet 2006Date d'inscription 10 avril 2008 Dernière intervention - 25 mars 2008 à 23:07
0
Utile
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
IMX 16 Messages postés mercredi 16 avril 2003Date d'inscription 4 mai 2011 Dernière intervention - 25 mars 2008 à 23:27
0
Utile
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
IMX 16 Messages postés mercredi 16 avril 2003Date d'inscription 4 mai 2011 Dernière intervention - 27 mars 2008 à 12:22
0
Utile
Merci beaucoup !!!

Au plaisir.

IMX
Commenter la réponse de IMX
amoum 5 Messages postés dimanche 23 mars 2008Date d'inscription 17 février 2009 Dernière intervention - 3 avril 2008 à 21:01
0
Utile
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.