Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 02-02-2006
Victor_TlrSoft Victor_TlrSoft is offline
Registrado
 
Registrado: feb 2006
Posts: 5
Poder: 0
Victor_TlrSoft Va por buen camino
Problema con DLL

Holas:

Tengo una DLL hecha en delphi, y me encuentro con el siguiente problema : internamente la DLL generar un DocumenWebServiceContract que se usa para conectarse al un servicio web de WebLogic.
Si invoco la libreria desde VB6 no tengo ningun problema en utilizar los metodos que esta exporta, el problema viene cuando intento utilizar la libreria desde Delphi, es entonces cuando me lanza el siguiente error :

Project Text_Dll_External.exe raised exception class EOlrSysError with message "No se ha llamado a CoInitialize"

Y se muere en el catch que le tengo en esa linea.
¿Alguien tiene idea de porque puede ser esto?

Muchas Gracias
Responder Con Cita
  #2  
Antiguo 02-02-2006
Victor_TlrSoft Victor_TlrSoft is offline
Registrado
 
Registrado: feb 2006
Posts: 5
Poder: 0
Victor_TlrSoft Va por buen camino
Bueno, como nadie me contesto, pues ya lo consegui arreglar yo a base de matarme la cabeza. El problema es el siguiente :

En una DLL los componentes COM no se inicializan de manera implicita como lo hacen en un ejecutable, por ello cuando invocamos componentes ActiveX desde dentro de una DLL, estos no estan inicializados.

La manera de solcucionarlo es la siguiente:

En el codigo que se ejecuta directamente al iniciar una DLL, en mi caso una Unit tenemos que agregar al Uses la importacion ==> ActiveX

Y a mayores generar un bloque de inizialitation con la sentencia al principio de todo:
CoInitialize(nil);
De esta manera se inicializaran los ActiveX y podremos utilizarlos de la manera normal.

unit UnitDll

uses SysUtils, SOAPHTTPTrans, ActiveX;

interface
//lo que sea
implementation
//la implementacion de lo que sea
initialization
CoInitialize(nil);

end.

Espero haber sido de ayuda.
Un Saludin.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Problema al querer registrar una Dll Luana API de Windows 6 26-03-2016 07:19:29
problema con dll y parametros JoseQ OOP 3 03-02-2006 11:11:41
Problema con DLL munheko Varios 1 01-05-2005 13:25:27
Problema con DLL ogorut Varios 5 23-10-2003 10:23:45
Problema con DLL pruz Varios 4 17-09-2003 08:19:47


La franja horaria es GMT +2. Ahora son las 10:50:02.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi