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 06-10-2008
miguelcba miguelcba is offline
Registrado
 
Registrado: sep 2008
Posts: 6
Poder: 0
miguelcba Va por buen camino
Crear un form en una libreria Dll

hola a todos, tengo un problema: al cargar una dll estatica me devuelve un error "CoInitialize".

les comento, la dll crea un formulario, el cual contiene un adoquery conectado a sqlserver. Por lo que veo ese es el problema, porque al quitarle el query me muestra el formulario sin errores.

Lo que intento hacer es un formulario que muestre un bdgrid con el resultado de una consulta sql, el cual usaria en varios proyectos (por eso decidi usar una dll).

agradeceria a quien me pudiera dar una mano en esto.
Responder Con Cita
  #2  
Antiguo 06-10-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
pues mas bien tendrías que analizar que tienes en el "Auto-Create" y / o como estas creando el TQuery.

Por que a mi que tengo mas o menos lo mismo, no me da ningún problema.
__________________

Responder Con Cita
  #3  
Antiguo 06-10-2008
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Poder: 24
seoane Va por buen camino
Para poder usar un AdoQuery primero hay que llamar a la función CoInitialize (si es que el error lo dice todo ). Esta función hay que llamarla una vez por cada thread. Normalmente, si estas creando una aplicación con formularios usando la VCL, delphi ya llama la función CoInitialize para el thread principal. Pero la cosa cambia si estas creando una aplicación de consola, utilizas el query dentro de un thread o, como puede ser tu caso, cargas tu dll en una aplicación que no ha llamado a esa función.

En resumen llama a la función CoInitialize
Responder Con Cita
  #4  
Antiguo 06-10-2008
miguelcba miguelcba is offline
Registrado
 
Registrado: sep 2008
Posts: 6
Poder: 0
miguelcba Va por buen camino
Cita:
Empezado por ContraVeneno Ver Mensaje
pues mas bien tendrías que analizar que tienes en el "Auto-Create" y / o como estas creando el TQuery.
Me falto un detalle, es la primera vez que intento realizar una dll con un form.

Código Delphi [-]Library buscar;
uses
sharemem,
buscar1 in 'buscar1.pas' {Form1};
{$R *.res}
exports
buscaroperador;
begin

end.




no se si es correcta la forma en que intento hacerla:
pero por ejemplo al colocarle el adoquery me tira el error,

Código Delphi [-]unit buscar1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, ADODB;
type
TForm1 = class(TForm)
ADOQuery1: TADOQuery;
private
{ Private declarations }
public
{ Public declarations }
end;
function buscaroperador:string;stdcall;
var
Form1: TForm1;
implementation
{$R *.dfm}
function buscaroperador:string;stdcall;
var
formulario:tform1;
begin
Application.Initialize;
formulario:=tform1.Create(application);
if formulario.ShowModal=mrok then
result:='aa';
end;
end.
Responder Con Cita
  #5  
Antiguo 06-10-2008
Avatar de ContraVeneno
ContraVeneno ContraVeneno is offline
Miembro
 
Registrado: may 2005
Ubicación: Torreón, México
Posts: 4.738
Poder: 23
ContraVeneno Va por buen camino
el problema va más por lo que menciona maese Seoane
__________________

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
No puedo crear el form Espartaco Varios 3 10-01-2008 14:30:52
Duda al crear una libreria meme C++ Builder 5 02-10-2007 11:47:26
Crear un nuevo form CottonMouth OOP 2 05-07-2007 21:46:49
Crear un unit tipo libreria D@byt OOP 7 06-05-2005 08:25:36
Crear una aplicacion sin form kolokol Varios 5 04-06-2004 22:57:52


La franja horaria es GMT +2. Ahora son las 02:39:38.


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