FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
Error Accessing the OLE Registry
Que tal, buenas tardes.
Tengo una detalle con una libreria COM, no se si asi se le llama... pero les comento: Cree una libreria en C#.net y dicha libreria se importo a Delphi 7.0 y se creo un componente, todo funciona correctamente en la maquina donde estoy desarrollando... Sin embargo cuando la aplicación de Delphi la ejecuto en otra maquina, me muestra el siguiente mensaje: Cita:
gracias. |
#2
|
|||
|
|||
Probablemente la libreria no se ha registrado. Deberias comprobar si esta compilada en modo "AnyCPU" ya que podria darse el caso que tu app (32-bit, ya que dices esta creada con Delphi 7) se ejecute en una maquina x86-64 y en este caso la libreria no funcionaria ya que lo de "AnyCPU" significa que se ejecuta en modo 64-bit en plataformas x86-64 y en modo 32-bit en plataformas x86. Si creas librerias COM con .NET debes compilarlas para la plataforma especifica en la que se usen, es decir-> nunca debe usarse "AnyCPU" .
Aparte de lo anterior, deberias haber especificado el sistema operativo...etc, mas que nada para no dar palos de ciego. Yo vengo del mundo .NET (aunque no soy programador) y te puedo asegurar que aunque con .NET se pueden crear "librerias COM" y "controles OCX" estos dan muchos problemas y requieren mucha memoria (cargan el .NET Framework) y no basta con activar la casilla "Registrar para interoperabilidad COM" en las propiedades del proyecto. Lo ideal es crearlos con Visual C++ o incluso con Delphi. Un saludo |
#3
|
|||
|
|||
Gracias exmachina.
tienes razón estas librerias dan muchos problemas, ya lo intente especificando la plataforma, pero aun asi sale el mismo mensaje. Creo que lo dejaremos así, optare por otra forma, quiza hacer una aplicacion de consola y ejecutarla con parametros desde delphi. muchas gracias por tu respuesta. saludos. |
#4
|
|||
|
|||
Hola. Creo que el problema es que no esta registrada. ¿Como la registras en la otra maquina?. Yo use Regasm.exe y funciono bien (Innosetup tambien lo usa para estas tareas); mediante programación, con .NET, puedes usar la clase RegistrationServices.
Lo unico que creo que puede ser diferente es que yo NO cree un ensamblado en el que se exponia alguna cosa a COM-> Yo cree una libreria cuya unica finalidad era usarse con COM y para ello primero defini la interfaz y despues cree su implementacion ("CoClass", como en delphi o C++), por ejemplo: Código:
namespace COMe { [Guid("........El que sea.........")] [InterfaceType(ComInterfaceType.InterfaceIsDual)] public interface IPatatin { [DispId(1)] int a { get; set; } [DispId(2)] int b { get; set; } [DispId(3)] int c { get; set; } [DispId(4)] int d () } // // IMPLEMENTACION // [Guid("........El que sea.........")] [ClassInterface(ClassInterfaceType.None)] [ProgId("COMe.Patatin.1")] public class Patatan: IPatatin { public int a { get; set; } public int b { get; set; } public int c { get; set; } public int d() { throw new NotImplementedException(); } } } |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Delphi Prefix Registry | Crandel | Noticias | 6 | 17-04-2008 00:37:50 |
HTTPRIO y el Registry ¿unica opción? | kaopectate | Internet | 5 | 08-11-2007 17:21:35 |
Registry | acertij022 | API de Windows | 2 | 20-02-2007 00:24:18 |
Mail en Registry | OmarPerez | Varios | 0 | 20-01-2005 16:58:07 |
The registry information is missing | Giasl | Firebird e Interbase | 0 | 02-06-2003 17:51:31 |
|