FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
||||
|
||||
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.
__________________
|
#3
|
||||
|
||||
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 |
#4
|
|||
|
|||
Cita:
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. |
#5
|
||||
|
||||
el problema va más por lo que menciona maese Seoane
__________________
|
|
|
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 |
|