Fehler beim erstellen der Komponente 'AxHost" - System.- Laufzeit.InteropServices.COMException (0x80029C4A)
Den ich erstellt habe .Net usercontrol in C#. es ist die grafische Kontrolle mit einem Textfeld und Listenfeld.
Jetzt will ich mit diesem control in legacy VC++ - Anwendung.(native binary).
bedeutet möchte ich nennen, Verwaltung von code aus unmanage-code.
nehme mein usercontrol name ist xyz.dll.
Ich erzeugte tlb-Datei verwenden tlbexp.exe und dann registrierte ich dieses Steuerelement mit nachstehenden Befehl Linie.
regasm xyz.dll /tlb:"C:\xyz.tlb" /codebase
Ich habe meine Steuerung mit 'Activex control test container" (open studio 2005 und gehen Sie zu 'Werkzeuge' - Menü)
Getestet habe ich meine .Net usercontrol auf dieses tool und es hat gut funktioniert.
dann erstellte ich ein Beispiel für C# - Windows-Anwendung. Unter der Toolbox, die ich mit der rechten Maustaste und 'Elemente Wählen' und ausgewählte
"COM-Komponente" tab. und wählen Sie meine xyz.dll Kontrolle.
jetzt das Control Hinzugefügt wird, in die toolbox.
Aber wenn ich ziehen Sie das Steuerelement auf Fenster, dann bekam ich folgende Fehlermeldung.
Fehler beim erstellen der Komponente 'AxHost'. Die Fehlermeldung folgt:
'- System.- Laufzeit.InteropServices.COMException (0x80029C4A): Fehler beim laden der Typbibliothek/DLL. (Ausnahme von HRESULT: 0x80029C4A (TYPE_E_CANTLOADLIBRARY))
System.Windows.Formen.Design.DocumentDesigner.AxToolboxItem.CreateComponentsCore(IDesignerHost host)
System.Zeichnung.Design.ToolboxItem.CreateComponentsCore(IDesignerHost-host, IDictionary defaultValues)
System.Zeichnung.Design.ToolboxItem.CreateComponents(IDesignerHost-host, IDictionary defaultValues)
System.Windows.Formen.Design.OleDragDropHandler.CreateTool(ToolboxItem-tool, übergeordnete Steuern, Int32 x, Int32 y, Int32 width, Int32 height, Boolean hasLocation, Boolean hasSize, ToolboxSnapDragDropEventArgs e)"
.
mir auch geben einige Zeiger "verwenden .net usercontrol in legacy C# - Anwendung"
InformationsquelleAutor user847455 | 2011-07-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist nicht genug Informationen, aber meine Vermutung bisher:
Ist die Steuerung entwickelt .NET 4 und die ältere C# - Anwendung befindet .NET-2.
.NET 4 mischen kann .NET-version in den gleichen Prozess, aber .NET 2 nicht, so dass ich vermute, dieses Problem zu lösen Sie brauchen, um zu entwickeln/bauen Sie die Kontrolle in .NET 2, so dass es nutzbar ist .NET 2 & 4.
BEARBEITEN (nach dem Kommentar zu .NET 3.5):
Müssen Sie das Steuerelement registrieren durch ausführen regsvr32.
EDIT 2:
regsvr32 xyz.dll
ODERregsvr32 /i xyz.dll
siehe edit über regsvr32
registrieren mit regsvr32?
regsrv32 xyz.dll ODER regsrv32 /i xyz.dll
ich habe den gleichen Befehl im Fenster ausführen oder Eingabeaufforderung Sie die folgende Fehlermeldung angezeigt --------------------------- RegSvr32 --------------------------- xyz.dll wurde geladen, aber der DllRegisterServer-Eingangspunkt wurde nicht gefunden. Diese Datei kann nicht registriert werden. --------------------------- OK ---------------------------
InformationsquelleAutor Yahia
Geben Sie den folgenden in die Eingabeaufforderung ,
regsvr32 "C:\Program Files\VideoLAN\VLC\axvlc.dll"
registrieren dll-Datei
InformationsquelleAutor user2959251