FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
|
#1
|
|||
|
|||
Error THilo QueryInterface
Buenas,
tengo un error que no consigo solucionar, os lo explico para ver si alguien me puede ayudar. En el código creo un hilo de la siguiente forma:
Pero a hacer el createit(false) me da el siguiente error: QueryInterface for Interface Borland.Vcl.IMalloc failed. ¿Alguna idea? Si quito el hilo me va bien, así que supongo que será que algo del hilo que está mal. Si a alguien se le ocurre algo..... Gracias de antemano. Saludos. Última edición por jachguate fecha: 01-12-2005 a las 15:36:58. Razón: Añadir etiqueta [delphi] |
#2
|
||||
|
||||
Hola.
En esta ocasión he editado tu mensaje para añadir la etiqueta [delphi] al código publicado. Creo que ya es tiempo que aprendas a usarla, pues seguro notas la diferencia en la presentación del mismo Hasta luego.
__________________
Juan Antonio Castillo Hernández (jachguate) Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate |
#3
|
||||
|
||||
Sería bueno ver el código de CreateIt... ¿Llamas al constructor heredado dentro de este?
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#4
|
||||
|
||||
Tengo un par de observaciones sobre esto tu código:
¿No ten convendría iniciar la DLL y apuntar los procedimientos en el constructor?... Yo haría un cilco propiamente dicho, ademas no tienes garantías que esto sea eterno y vuelque la pila. Saludos!
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#5
|
|||
|
|||
Buenas,
en primer lugar gracias jachguate por editar mi mensaje. En segundo lugar, el código de CreateIt es el siguiente: Código:
constructor THilo.CreateIt(Modo : boolean); begin inherited Create(false); ModoAdm := Modo; end; Código:
procedure Gestion(Id: integer; Con: variant); external 'Library1.dll' ; delphi.com.ar no entiendo lo que me quieres decir con que harías un ciclo. Si puedes explicarmelo te lo agradecería. Saludos y gracias. |
#6
|
||||
|
||||
Cita:
¿Te funciona el código si lo sacas del Thread?
__________________
delphi.com.ar Dedique el tiempo suficiente para formular su pregunta si pretende que alguien dedique su tiempo en contestarla. |
#7
|
|||
|
|||
Buenas,
ya he conseguido solucionar el problema. He tenido que añadir la siguiente linea: Código:
{%DelphiDotNetAssemblyCompiler 'c:\archivos de programa\archivos comunes\borland shared\bds\shared assemblies\3.0\Borland.VclAdoDb.dll'} Saludos y gracias. |
#8
|
|||
|
|||
Buenas,
ahora tengo un problema a la hora de acceder por segunda vez al procedimiento Gestión de la dll. La primera vez me deja sin problemas pero las siguientes me da el siguiente error: System error. Code 1400. El identificador de la ventana no es válido. El código del procedimiento de la dll es el siguiente: Código:
procedure GestionarVentaPacks(IdUsuario: integer;Conn: variant); export; begin frm := TfrmGestVentPacks.Create(nil); frm.ADOConnRecData_Bilbao.ConnectionString := Conn; frm.IdUsuario := IdUsuario; frm.Visible := true; frm.Handle; while (frm.HandleAllocated) do Application.ProcessMessages; end; Saludos y gracias. |
|
|
|