Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 20-06-2011
engranaje engranaje is offline
Miembro
 
Registrado: may 2011
Posts: 163
Poder: 13
engranaje Va por buen camino
problemas de memoria con impresoras en terminal server

No se me ha ocurrido una manera mejor que el título para intentar explicar los que me pasa. Se trata de una aplicacion desarrollada en delphi 2.0 que he tenido que modificar recientemente debido a que no imprimía en citrix. Tras los cambios ya he conseguido que me imprima tanto a traves del quickreport, como utilizando directamente la api para rellenar forumularios en papel preimpreso con impresoras matriciales.

En local no he tenido ningún problema sin embargo tanto en terminal server como en citrix me encuentro con violaciones de acceso repentinas y operaciones con puntero invalidas. No he conseguido un patrón exacto para reproducirlas, pero siempre se dan al imprimir y nunca la primera vez que se imprime, algunas veces es la segunda vez y otras a la 5º o 6º impresión.

Trazando los errores me encuentro con que algunas veces es el getprinter el que da una violación de acceso, otras el freemem que hago al pdevice (pchar con el nombre de la impresora), otras veces pasa sin problemas por todo el proceso y me da la violación de acceso al intentar escribir en una stringlist que uso a modo de log, o al escribir una linea en la impresora que al final llama a esta función:
Código Delphi [-]
function PrintRawData(hPrn : THandle;
                      Buffer : pointer;
                      NumBytes : SpoolInt) : integer;
{$IFDEF WIN32}
var
  BytesWritten : DWORD;
 {$ENDIF}
begin
  if (NumBytes = 0) then
  begin
    Result := 1;
    Exit;
  end;
 {$IFDEF WIN32}
   if (WritePrinter(hPrn,
                    Buffer,
                    NumBytes,
                    BytesWritten) = FALSE) then
   begin
     Result := -1;
     Exit;
   end;
   if (NumBytes <> BytesWritten) then
   begin
     Result := -1;
     Exit;
   end;
   Result := 1;
 {$ELSE}
  result := WriteSpool(hPrn,
                       Buffer,
                       NumBytes);
 {$ENDIF}
end;

El caso es que por mas que intento reproducir estos problemas en local no lo consigo.

Última edición por ecfisa fecha: 20-06-2011 a las 12:56:02. Razón: Etiquetas [DELPHI] [/DELPHI]
Responder Con Cita
  #2  
Antiguo 20-06-2011
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola engranaje.

Por favor, cuando incluyas código Delphi encierra el mismo con las etiquetas [delphi] [/delphi] para que sea más legible.

En este enlace se explica su uso: etiquetas vB


Saludos y muchas gracias
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
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
Impresoras en Terminal Server del Win2003 Draker Impresión 7 17-01-2012 09:23:47
Impresoras mezcladas en Terminal Server Roky Varios 1 11-12-2008 15:48:15
Problemas con Terminal Server Win 2003 Server El_Perrito Windows 0 16-10-2004 19:53:45
Desparecen las impresoras en el Terminal Server Telemaco Windows 3 21-08-2004 20:43:44
Problemas con Terminal Server y una sesión DOS islu Varios 9 24-06-2004 11:47:09


La franja horaria es GMT +2. Ahora son las 09:49:22.


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