1

Salut !

J'ai un petit souci avec un programme en VB.NET
Mon programme est installé sur le compte administrateur et fonctionne très bien sur celui-ci.

Lorsque je passe sur le compte utilisateur, certains modules faisant appel à des histogrammes buguent. Le bug apparaît à la ligne suivante (faisant partie des lignes générées automatiquement par le Concepteur Windows Form) :

CType(Me.Graf, System.ComponentModel.ISupportInitialize).EndInit()


Le code d'erreur retourné est :

Classe non enregistrée (exception from HRESULT : 0x80040154(REGDB_E_CLASSNOTREG))

************** Exception Text **************

System.Runtime.InteropServices.COMException (0x80040154): Classe non enregistrée (Exception from HRESULT: 0x80040154 (REGDB_E_CLASSNOTREG))

at System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance(Guid& clsid, Object punkOuter, Int32 context, Guid& iid)
at System.Windows.Forms.AxHost.CreateWithoutLicense(Guid clsid)
at System.Windows.Forms.AxHost.CreateWithLicense(String license, Guid clsid)
at System.Windows.Forms.AxHost.CreateInstanceCore(Guid clsid)
at System.Windows.Forms.AxHost.CreateInstance()
at System.Windows.Forms.AxHost.GetOcxCreate()
at System.Windows.Forms.AxHost.TransitionUpTo(Int32 state)
at System.Windows.Forms.AxHost.CreateHandle()
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.AxHost.EndInit()
at GMPOP_Client.FormStatistique.InitializeComponent() in C:\GMPOP\GMPOP Solution\GMPOP Client Project\FormStatistique.vb:line 390
at GMPOP_Client.FormStatistique..ctor(Int32 id, FrameMDI mdi) in C:\GMPOP\GMPOP Solution\GMPOP Client Project\FormStatistique.vb:line 17
at GMPOP_Client.FrameMDI.MenuItem9_Click(Object sender, EventArgs e) in C:\GMPOP\GMPOP Solution\GMPOP Client Project\FormMDI.vb:line 881



Apparamment, ça vient pas des dll spéciales pour ce module de stats. Elles sont bien copiées et registered, même pour le compte utilisateur.

En fait, je ne sais pas d'où ça vient, et j'y suis depuis 3 jours :@
Quelqu'un a une idée SVP ???

Merci ! wink
Benoît, frère d'Henri et Martial Demolins (le regroupement familial est toujours d'actualité :D)

2

Pour tes histogrammes tu utilises un contrôle ActiveX non ? essaie de le réenregistrer sur le compte utilisateur.
> regsvr32.exe fichier_a_enregistrerpeut-être que tu n'y a pas accès parce tu n'as pas les droits aussi ?
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?

3

Merci beaucoup de ton aide Twindruff. En fait j'ai déjà rechargé toutes les DLL manuellement, elles sont bien registered, y compris sur le compte utilisateur. J'ai donné tous les pouvoirs, mais ça buguait encore. Et sinon on n'utilise pas de Contrôle ActiveX, juste des DLL.


En fait, le seul moyen pour moi de faire fonctionner mon programme en compte non administrateur, c'est de le faire marcher sous un compte utilisateur avec pouvoir. Vu que j'avais besoin que ça marche vite, c'est ce que j'ai fait.

En fait, j'ai rien trouvé comme explication, malgré plusieurs heures d'arrachage de cheveux :@

Mreci beaucoup encore Twindruff !
Benoît, frère d'Henri et Martial Demolins (le regroupement familial est toujours d'actualité :D)

4

En fait ta dll contient un contrôle ActiveX (ou COM), ya que ce type de dll qui doit être enregistrée.
En débuggant tu devrais pouvoir déterminer le Guid du contrôle qui n'arrive pas à être créé (sur System.Windows.Forms.UnsafeNativeMethods.CoCreateInstance par exemple).
Et de rien j'ai rien fait grin
avatar
Combien de tas de bois une marmotte pourrait couper si une marmotte pouvait couper du bois ?