We observe the exact same problem. It turns out that printing through the cPrinter class crashes with memory errors whenever we compile Classmate with the "Build/Optimize" flag. It only happens when using the printer DC, print preview is not affected. Disabling Optimize in Release builds (or using Debug builds) stops the crashes.
Code: Select all
Anwendung: WorkSuite.exe
Frameworkversion: v4.0.30319
Beschreibung: Der Prozess wurde aufgrund einer unbehandelten Ausnahme beendet.
Ausnahmeinformationen: System.AccessViolationException
bei VOWin32APILibrary.Functions.DrawText(Void*, IntPtr, Int32, VO._winRECT*, UInt32)
bei Classmate.cHDC.DrawText(System.String, Int32, XSharp.__Float, XSharp.__Float, XSharp.__Float, XSharp.__Float, UInt32)
bei PP_Server.PrintString(XSharp.__Usual[])
bei PP_Server.PrintElement(XSharp.__Usual[])
bei PP_Server.PrintSection(XSharp.__Usual[])
bei PP_Server.PrintPageBody()
bei Classmate.cPrinter._PrintPage()
bei Classmate.cPrinter._PrintDoc()
bei Classmate.cPrinter._PrintStart()
bei Classmate.cPrintMsgDialog.OnTimer(Classmate.cEvent)
bei Classmate.cWindow.Dispatch(Classmate.cEvent)
bei Classmate.cBaseDialog.Dispatch(Classmate.cEvent)
bei Classmate_Gui.Functions._cDialogProc(Void*, UInt32, UInt32, Int32)
bei VOWin32APILibrary.Functions.IsDialogMessage(Void*, VO._winMSG*)
bei Classmate.cWindow._PreProcessMessage(VO._winMSG*)
bei Classmate.cDialog._ModalExec()
bei Classmate.cDialog.Show(Int32)
bei Classmate.cPrintMsgDialog.Show(Int32)
bei Classmate.cPrinter.Print()
bei PP_Server.Print(XSharp.__Usual[])
bei SQLRuntime.Functions.PPC_Install(XSharp.__Usual[])
bei DynamicClass.PPC_Install(RTE_L(39),NIL,ARR_Get(RTE_L(14),4),RTE_L(11),RTE_L(12),ARR_Get(RTE_L(14),5))(RTE_L(39),NIL,ARR_Get(RTE_L(14),4),RTE_L(11),RTE_L(12),ARR_Get(RTE_L(14),5))(XSharp.__Usual[])
bei XSharp.MacroCompiler.UsualMacro.MacroCodeblock.Eval(XSharp.__Usual[])
bei XSharp.RT.Functions.Eval(XSharp.ICodeblock, XSharp.__Usual[])
bei XSharp.RT.Functions.MExec(XSharp.Codeblock)
bei SQLRuntime.Functions.RTE_ExecMacroP(XSharp.__Usual, XSharp.__Usual, XSharp.__Usual)
bei SQLRuntime.Functions.RTE_Exec(XSharp.__Usual[])
bei SQLRuntime.Functions.RTE_Func(XSharp.__Usual[])
bei DynamicClass.RTE_Func("SYS.STDFForm",{"QUOTE","QUOTE_KOPF","QUOTE_HPOS","QUOTENR",DWN_Selected(),""})("SYS.STDFForm",{"QUOTE","QUOTE_KOPF","QUOTE_HPOS","QUOTENR",DWN_Selected(),""})(XSharp.__Usual[])
bei XSharp.MacroCompiler.UsualMacro.MacroCodeblock.Eval(XSharp.__Usual[])
bei XSharp.RT.Functions.Eval(XSharp.ICodeblock, XSharp.__Usual[])
bei XSharp.RT.Functions.MExec(XSharp.Codeblock)
bei SQLRuntime.Functions.RTE_ExecMacroP(XSharp.__Usual, XSharp.__Usual, XSharp.__Usual)
bei SQLRuntime.Functions.RTE_Exec(XSharp.__Usual[])
bei MN_Object.Execute(XSharp.__Usual[])
bei MN_Object.mnuODIExec(XSharp.__Usual[])
Ausnahmeinformationen: System.Reflection.TargetInvocationException
bei System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
bei System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[])
bei System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
bei XSharp.RT.OOPHelpers.SendHelper(System.Object, System.Reflection.MethodInfo, XSharp.__Usual[], XSharp.__Usual ByRef, Boolean)
bei XSharp.RT.OOPHelpers.SendHelper(System.Object, System.String, XSharp.__Usual[], XSharp.__Usual ByRef, Boolean)
bei XSharp.RT.OOPHelpers.DoSend(System.Object, System.String, XSharp.__Usual[], System.String)
bei XSharp.RT.Functions.Send(XSharp.__Usual, XSharp.__Usual, XSharp.__Usual[])
bei Classmate.cMenu._ProcessCommandMsg(Classmate.cEvent)
bei Classmate.cWindow.OnCommand(Classmate.cEvent)
bei WN_Dialog.OnCommand(Classmate.cEvent)
bei Classmate.cWindow.Dispatch(Classmate.cEvent)
bei Classmate.cBaseDialog.Dispatch(Classmate.cEvent)
bei WN_Dialog.Dispatch(Classmate.cEvent)
bei Classmate_Gui.Functions._cDialogProc(Void*, UInt32, UInt32, Int32)
bei VOWin32APILibrary.Functions.IsDialogMessage(Void*, VO._winMSG*)
bei WN_Dialog._PreProcessMessage(VO._winMSG*)
bei Classmate.cApp.Exec()
bei cWorkSuite.Start(XSharp.__Usual[])
Ausnahmeinformationen: System.Reflection.TargetInvocationException
bei System.RuntimeMethodHandle.InvokeMethod(System.Object, System.Object[], System.Signature, Boolean)
bei System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(System.Object, System.Object[], System.Object[])
bei System.Reflection.RuntimeMethodInfo.Invoke(System.Object, System.Reflection.BindingFlags, System.Reflection.Binder, System.Object[], System.Globalization.CultureInfo)
bei XSharp.RT.OOPHelpers.SendHelper(System.Object, System.Reflection.MethodInfo, XSharp.__Usual[], XSharp.__Usual ByRef, Boolean)
bei XSharp.RT.OOPHelpers.SendHelper(System.Object, System.String, XSharp.__Usual[], XSharp.__Usual ByRef, Boolean)
bei XSharp.RT.OOPHelpers.DoSend(System.Object, System.String, XSharp.__Usual[], System.String)
bei XSharp.RT.Functions.Send(XSharp.__Usual, XSharp.__Usual, XSharp.__Usual[])
bei Classmate_Gui.Functions.CmStart(XSharp.__Symbol)
bei WorkSuite.Exe.Functions.Start()