Erro em TPRINTER (memory buffer overflow)
Publicado: Mié Dic 26, 2018 2:05 am
Prezados Senhores,
Tenho uma rotina (Procedure) a qual passo uma String a ser impressa através da Classe TPRINTER. Esta rotina vem funcionando a meses. Fiz algumas modificação no meu aplicativo, porem não mudei a rotina de impressão (que usa TPRINTER). Todo a vez que é enviado uma String a ser impressa, apresenta o erro descrito abaixo:
Application Internal Error - c:\Mhacker\bin\nfce_pdv.exe
Terminated at: 2018-12-25 22:53:32
Unrecoverable error 9022: Memory buffer overflow
Called from PRINTERCREATEDC(0)
Called from TPRINTER:STARTDOC(342) in Printer.prg
Called from IMPCUPOM(633) in C:\Users\Marcelo\Dropbox\PROJETOS\Software\Xailer50\NFCE_PDV\Source\Pdv_Lib.prg
Called from IMPCUPOMTEF(1007) in C:\Users\Marcelo\Dropbox\PROJETOS\Software\Xailer50\NFCE_PDV\Source\Pdv_Lib.prg
Called from TFORM1:TEFADM(1881) in C:\Users\Marcelo\Dropbox\PROJETOS\Software\Xailer50\NFCE_PDV\Source\Form1.prg
Called from TMENUITEM:ONCLICK(0) in Events.prg
Called from TMENU:DOACTION(253) in Menu.prg
Called from TMENU:DOACTION(258) in Menu.prg
Called from TFORM1:WMCOMMAND(945) in Form.prg
Called from RUNFORM(0)
Called from TAPPLICATION:RUN(287) in Application.prg
Called from MAIN(25) in C:\Users\Marcelo\Dropbox\PROJETOS\Software\Xailer50\NFCE_PDV\Source\nfce_pdv.prg
------------------------------------------------------------------------
Procedure ImpCupom( cBuffer, lPreView )
Local nTextLen, cLine, i, nTam, oFont
Default lPreView TO .f.
nTam := 48 // caracteres por linha na impressora
WITH OBJECT oFont := TFont():New()
// :cName := "Arial"
:cName := "Times New Roman"
:nSize := 8
:lBold := .t.
END WITH
With Object Printer
:lPreView := lPreView
:StartDoc() // ONDE O ERRO ESTA OCORRENDO
:oCanvas:nMapMode := mmSIMULCHAR
:StartPage()
End With
WITH OBJECT Printer:oCanvas
:oFont := oFont
----------------------------------------------------------------------------------------------------------
Tenho uma rotina (Procedure) a qual passo uma String a ser impressa através da Classe TPRINTER. Esta rotina vem funcionando a meses. Fiz algumas modificação no meu aplicativo, porem não mudei a rotina de impressão (que usa TPRINTER). Todo a vez que é enviado uma String a ser impressa, apresenta o erro descrito abaixo:
Application Internal Error - c:\Mhacker\bin\nfce_pdv.exe
Terminated at: 2018-12-25 22:53:32
Unrecoverable error 9022: Memory buffer overflow
Called from PRINTERCREATEDC(0)
Called from TPRINTER:STARTDOC(342) in Printer.prg
Called from IMPCUPOM(633) in C:\Users\Marcelo\Dropbox\PROJETOS\Software\Xailer50\NFCE_PDV\Source\Pdv_Lib.prg
Called from IMPCUPOMTEF(1007) in C:\Users\Marcelo\Dropbox\PROJETOS\Software\Xailer50\NFCE_PDV\Source\Pdv_Lib.prg
Called from TFORM1:TEFADM(1881) in C:\Users\Marcelo\Dropbox\PROJETOS\Software\Xailer50\NFCE_PDV\Source\Form1.prg
Called from TMENUITEM:ONCLICK(0) in Events.prg
Called from TMENU:DOACTION(253) in Menu.prg
Called from TMENU:DOACTION(258) in Menu.prg
Called from TFORM1:WMCOMMAND(945) in Form.prg
Called from RUNFORM(0)
Called from TAPPLICATION:RUN(287) in Application.prg
Called from MAIN(25) in C:\Users\Marcelo\Dropbox\PROJETOS\Software\Xailer50\NFCE_PDV\Source\nfce_pdv.prg
------------------------------------------------------------------------
Procedure ImpCupom( cBuffer, lPreView )
Local nTextLen, cLine, i, nTam, oFont
Default lPreView TO .f.
nTam := 48 // caracteres por linha na impressora
WITH OBJECT oFont := TFont():New()
// :cName := "Arial"
:cName := "Times New Roman"
:nSize := 8
:lBold := .t.
END WITH
With Object Printer
:lPreView := lPreView
:StartDoc() // ONDE O ERRO ESTA OCORRENDO
:oCanvas:nMapMode := mmSIMULCHAR
:StartPage()
End With
WITH OBJECT Printer:oCanvas
:oFont := oFont
----------------------------------------------------------------------------------------------------------