TotalVarsling Skrevet 16. desember 2009 Del Skrevet 16. desember 2009 Hei vi har ett program som har en .ocx fil som skall registreras, i 32x bitars miljö fungerar programmet fint, men i 64x miljö så går det riktigt galet, i programmet får jag följande feilmelling System.Runtime.InteropServices.COMException (0x80040154): Class not registered (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 HolteByggsafe.IfcViewerControl.OctagaControl_Loaded(Object sender, RoutedEventArgs e) at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised) at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args) at MS.Internal.FrameworkObject.OnLoaded(RoutedEventArgs args) at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent) at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root) at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks() at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks() at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget) at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget) at System.Windows.Media.MediaContext.Resize(ICompositionTarget resizedCompositionTarget) at System.Windows.Interop.HwndTarget.OnResize() at System.Windows.Interop.HwndTarget.HandleMessage(Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled) at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o) at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Boolean isSingleParameter) at System.Windows.Threading.ExceptionWrapper.TryCatchWhen(Object source, Delegate callback, Object args, Boolean isSingleParameter, Delegate catchHandler) dock fungerar detta soms agt va i 32x miljö det jag gort är att köra : "%systemroot%\SysWoW64\regsvr32.exe" "OctagaModellerX.ocx" då har den sagt att filen registrerats korrekt, men samma feil vid körning av application. Sen installerade jag .NET framwork 3.5 SDK på maskinen, (inget annat än att installera det) nu när jag kör : "%systemroot%\SysWoW64\regsvr32.exe" "OctagaModellerX.ocx" så får jag feil "The module "OctagaModellerX.ocx" failed to load. Make sure the binary is stored at specified path or debug it to check for problems with the binary or dependent .DLL files. The specified module could not be found. ." saken är att det är samma ocx fil som brukas i 32x OS. pluss att vissa maskiner fungerar detta av någon konstig grund. jag har kört vista 64x win 7 64x de får feil samtidigt en kollega som körer vista 64x med visual studio og SDK så fungerar programmet. alla tipps og ideer är glatt mottagna Lenke til kommentar
backup Skrevet 17. desember 2009 Del Skrevet 17. desember 2009 Et 64-bit program kan ikke direkte bruke ocx'er eller dll'er fra et 32-bit bibliotek og omvendt. Så hvis det aktuelle programmet er et 64-bit program, da er en løsning enten å rekompilere 32-bit ocx'en til 64-bit eller rekompilere programmet til 32-bit. Lenke til kommentar
TotalVarsling Skrevet 17. desember 2009 Forfatter Del Skrevet 17. desember 2009 Et 64-bit program kan ikke direkte bruke ocx'er eller dll'er fra et 32-bit bibliotek og omvendt. Så hvis det aktuelle programmet er et 64-bit program, da er en løsning enten å rekompilere 32-bit ocx'en til 64-bit eller rekompilere programmet til 32-bit. programmet är 32x program men går att köra på en pc med 64x os med den skall köra som 32x den installeras även under program files (x86) eller var det blir Lenke til kommentar
GeirGrusom Skrevet 17. desember 2009 Del Skrevet 17. desember 2009 Så du har byttet fra "Any CPU" til "x86"? Lenke til kommentar
TotalVarsling Skrevet 17. desember 2009 Forfatter Del Skrevet 17. desember 2009 Så du har byttet fra "Any CPU" til "x86"? det var en bättre fråga, men det rara är att på utvecklarnas maskiner så fungerar det hela og de kör 64x os bara att när jag kör detta så fungerar det ikke. og skillnaden skulle jag gissa är vilka utvecklar applikationer de har på maskinen som kanske någon fil är avhängig av? Lenke til kommentar
GeirGrusom Skrevet 17. desember 2009 Del Skrevet 17. desember 2009 Hmmmm så lenge ocx-en ligger i samme mappe som .exe fila, burde det gå i orden. Hjelper det om du kjører regsvr32 på den? Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå