[c#]Pb utilisation dll execution programme sur autre PC [Résolu]

Messages postés
201
Date d'inscription
mercredi 8 février 2006
Dernière intervention
20 février 2007
- - Dernière réponse : Lutinore
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
- 6 mars 2006 à 19:10
Bonjour,

je viens de devellopper une application basée sur les caméra AXIS.
Ce constructeur fourni un controle activeX dans un sdkpour pouvoir utiliser les caméra dans notre environement de dévellopement.

Dans visual studio 2005, je vais chercher l'ocx (clic droit dans toolbox --> choose item --> Com Components, je recherche l'ocx). Je fais un drag and drop de l'icone sur mon application et il me reference 2 dll: AxInterop.AXISMEDIACONTROLLib.dll et Interop.AXISMEDIACONTROLLib.dll.

Je fais un programme minimal:


,
----

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace minimumAxisCamControl
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
axAxisMediaControl1.MediaURL = "http://192.168.200.232/mjpg/video.mjpg";
axAxisMediaControl1.MediaUsername = "l_user";
axAxisMediaControl1.MediaPassword = "le_pass";
axAxisMediaControl1.MediaType = "mjpeg-unicast";
axAxisMediaControl1.Play();
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
axAxisMediaControl1.Stop();
}
}
}

Ce programme fonctionne très bien en local après compilation release ou debug (sans utiliser visual studio).
Donc je veux essayer se programme sur une autre machine en vu de son exportation.
Donc je prend le contenu du repertoire debug (ou release) et je le copie sur l'autre machine.
Le répertoire est du type:
,
----

Release
|_AxInterop.AXISMEDIACONTROLLib.dll
|_Interop.AXISMEDIACONTROLLib.dll
|_minimumAxisCamControl.exe
|_minimumAxisCamControl.pdb
|_minimumAxisCamControl.vshost.exe

Là, il me fait une erreur "minimumAxisCamControl a rencontré un problème et doit fermé ...".
Le raport rapide est:
EventType : clr20r3
P1 : minimumaxiscamcontrol.exe
P2 : 1.0.0.0
P3 : 4406f7a7
P4 : minimumaxiscamcontrol
P5 : 1.0.0.0
P6 : 4406f7a7
P7 : 9
P8 : 6
P9 : system.security.security
Je ne sais pas a quoi ca correspond.

J'ai remarqué que ça faisait cette erreur sur toutes les dll extérieure (j'ai les même soucis sur des dll de port série).
J'ai lus sur le forum de regarder les dépendance de cette dll avec d'autres grace à l'outils de visual studio "depends" mais je ne sais pas exploiter le résultat, il me point sur une dll (presente sur le pc cible) qui pointe vers 7 autres etc ... Honnetement je pense qu'il doit y avoir possibilité de savoir laquelle il me faut exporter amoins qu'il y ai une autre solution pour faire fonctionner mon programme.
Avec Reflector il pointe vers mscorlib.dll qui n'est pas présent sur le pc cible. JE le place à coté de mon .exe mais ca n'y fait rien.
J'ai essayé d'importer les dll avec regsvr32 mais il me fait une erreur.
mscorlib.dll was loaded, but the DllRegisterServer entry point was not found.

DllRegisterServer may not be exported, or a corrumpt version of mscorlib.dll may be in memory. Consider using PView to detect and remove it.

Alors là j'ai rien compris au message, je ne sais pas comment faire pour detecter et supprimer la dll chargée car il ne connait PView ( et moi non plus d'ailleur).

De toute facon ca me fait se probleme sur tous le sprogrammes que j'ai pus faire utilisant des activeX extérieurs ( pas de soucis sur des dll que j'ai créé).

Merci pour votre aide.

f.colo
Afficher la suite 

Votre réponse

6 réponses

Meilleure réponse
Messages postés
794
Date d'inscription
vendredi 24 septembre 2004
Dernière intervention
19 août 2008
3
Merci
Et en installant le sdk de la caméra sur le pc de déploiement ? (ou au moins les dll système de la caméra)

Dire « Merci » 3

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

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Nikoui
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
3
Merci
C'est l'activeX lui même, qu'il faut installer les deux DLLs générées par Visual Studio ce ne sont que des simples wrappers en code managé.

Dire « Merci » 3

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

Codes Sources a aidé 98 internautes ce mois-ci

Commenter la réponse de Lutinore
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
0
Merci
Salut,

mscorlib.dll est une des principales dll du Framework .Net.
Si ton ActiveX est en/utilise du .Net, il faut que le client aie installé le Framework.

/*
coq
MVP Visual C#
*/
Commenter la réponse de cs_coq
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Dernière intervention
20 février 2007
0
Merci
Oui, le framework .NET (la meme version que celle de développement) est installé sur le pc cible, j'arrive à y faire tourner des application de base (juste 1 bouton qui modifie le texte d'un label).
Je ne sais pas du tout comment régler ce probleme :(

f.colo
Commenter la réponse de cs_fcolo
Messages postés
201
Date d'inscription
mercredi 8 février 2006
Dernière intervention
20 février 2007
0
Merci
Oui, en installant ocx sur le pc cible ça a fonctionné.
Désolé pour cette question con, mais ça veut dre quoi "wrappers"?
Si j'ai bien compris c'est juste une sorte de drivers entre du code managé et du code non managé?

merci encore

f.colo
Commenter la réponse de cs_fcolo
Messages postés
3248
Date d'inscription
lundi 25 avril 2005
Dernière intervention
27 octobre 2012
0
Merci
C'est juste des prototypes de fonctions pour marshaller ( rendre compatible ) les type managés ver le types natifs ou COM. Pour le wrapper AxMachinChose.. il s'agit d'une classe qui dérive de AxHost et qui permet d'utiliser l'activeX comme si c'était un contrôle WinForms.

Tu peux regarder le contenu de ses deux libraries avec l'explorateur d'objets dans VS ou avec ildasm.exe.
Commenter la réponse de Lutinore

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.