Tengo una aplicación VB6 que usa una DLL COM. La DLL está escrita en C #. En las propiedades del proyecto C # tengo marcada la opción “Registrar para la interoperabilidad COM”. La aplicación VB6 funciona bien en mi máquina de desarrollo. El código de C # sigue exactamente este formato: CodeProject C # COM […]
Tengo esta interfaz en el dll (este código se muestra en Visual Studio a partir de metadatos): #region Assembly XCapture.dll, v2.0.50727 // d:\svn\dashboard\trunk\Source\MockDiagnosticsServer\lib\XCapture.dll #endregion using System; using System.Runtime.InteropServices; namespace XCapture { [TypeLibType(4160)] [Guid(“XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”)] public interface IDiagnostics { [DispId(1)] void GetStatusInfo(int index, ref object data); } } Así que creé un servidor COM con dicha clase: […]
Los objetos .NET son de subproceso libre por defecto. Si se clasifica a otro subproceso a través de COM, siempre se calculan para sí mismos, independientemente de si el subproceso del creador fue STA o no, e independientemente de su valor de registro ThreadingModel . Sospecho que agregan el Marshaler de hilos libres (más detalles […]
Estoy creando una clase contenedora en .NET (VB.NET, como ocurre, pero está igualmente relacionado con C #) que está expuesto a COM y una de las propiedades que estoy tratando de ajustar es una Variante. Pensé que solo podría usar un Objeto, pero me sale un error: Public Property FieldValue([vFieldID As Object = -1]) As […]
Estoy intentando ejecutar una aplicación VB6 heredada en mi escritorio (no tiene una interfaz de usuario, ya que es una aplicación de línea de comandos), y cuando lo hago, aparece un mensaje que dice: Run-time error ‘4099’: Method ‘~’ of object ‘~’ failed Esto no significa nada para mí; ¿Alguien tiene una idea de lo […]
Me encuentro con el escenario clásico donde, al crear objetos Word COM en .NET (a través del ensamblado Microsoft.Office.Interop.Word), el proceso WinWord no se cerrará aunque esté cerrando y soltando correctamente los objetos . Lo he reducido al uso del método Word.Documents.Add (). Puedo trabajar con Word de otras formas sin problemas (abrir documentos, modificar […]
Considere el siguiente código C # utilizando un objeto COM. MyComObject o = new MyComObject; try { var baz = o.Foo.Bar.Baz; try { // do something with baz } finally { Marshal.ReleaseComObject(baz); } } finally { Marshal.ReleaseComObject(o); } Esto liberará los objetos COM o baz , pero no los objetos temporales que regresan por o.Foo […]
Tengo un código en VB6. ¿Alguien puede decirme cómo escribirlo en C# . Este código es a continuación: Set Amibroker = CreateObject(“Broker.Application”) Set STOCK = Amibroker.Stocks.Add(ticker) Set quote = STOCK.Quotations.Add(stInDate) quote.Open = stInOpen quote.High = stInHigh quote.Low = stInlow quote.Close = stInYcp quote.Volume = stInVolume Set STOCK = Nothing Set quote = Nothing ¿Cuál es […]
Parece que esto sería una pregunta común, aunque no pude encontrarlo en SO. ¿Qué versión de MSXML debo usar en mis aplicaciones, y más importante aún, cómo debo decidir? Hay MSXML3, 4, 5 y 6. Recientemente publiqué un código en calling-wcf-service-by-vbscript que usaba MSXML v4. AnthonyWJones publicó que no debería usar 4, sino 3 o […]
Digamos que tengo una clase BaseClass que implementa IBaseClass Luego tengo una clase de interfaz que hereda IBaseClass. Luego tengo una clase llamada clase que implementa IClass. Por ejemplo: [ComVisible(true), InterfaceType(ComInterfaceType.IsDual), Guid(“XXXXXXX”)] public interface IBaseClass { [PreserveSig] string GetA() } [ComVisible(true), InterfaceType(ComInterfaceType.IsDual), Guid(“XXXXXXX”)] public interface IClass : IBaseClass { [PreserveSig] string GetB() } [ComVisible(true), ClassInterface(ClassInterfaceType.None), […]