CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  Windows SDK/API

求教高手报表问题啊,救命啦

楼主jw909(姬维)2004-12-02 12:37:25 在 C++ Builder / Windows SDK/API 提问

大家帮我看看这段程序有没有问题啊,为什么2000下正常,XP下就出会报错:Access   Violation   at   address   400C10B4   in   module   'vcl60.bpl'   Read   of   address   3037364C  
  知道的朋友请告诉我怎么处理啊,拜托了  
  void   __fastcall   TgPublic::SetPageSize(int   w,   int   h)  
  {  
          char   Device[CCHDEVICENAME];  
          char   Driver[MAX_PATH];  
          char   Port[32];  
          THandle     hDMode;  
          PDevMode     pDMode;  
   
          TPrinter   *Prn   =   Printer();  
   
          try  
          {  
                  Prn->GetPrinter(Device,Driver,Port,hDMode);  
                  if   (hDMode!=NULL)  
                  {  
                          pDMode=(PDevMode)GlobalLock((HGLOBAL   &)hDMode);  
                          if   (pDMode!=NULL)  
                          {  
                                  //pDMode->dmFields=(pDMode->dmFields)¦(DM_PAPERSIZE);  
                                  pDMode->dmFields=pDMode->dmFields   |   DM_PAPERSIZE   |   DM_PAPERLENGTH   |   DM_PAPERWIDTH   |   DM_COLLATE;  
                                  pDMode->dmPaperSize=   0;  
                                  pDMode->dmPaperLength   =h;     //高   *0.1mm  
                                  pDMode->dmPaperWidth   =   w;     //宽   *0.1mm  
                                  pDMode->dmCollate   =   DMCOLLATE_TRUE;  
                          }  
   
                          ResetDC(Prn->Handle,pDMode);   //出错   jww    
   
                          GlobalUnlock((HGLOBAL   &)hDMode);  
                          Prn->SetPrinter(Device,   Driver,   Port,   hDMode);  
                  }  
          }  
          __finally  
          {  
          }  
  } 问题点数:100、回复次数:12Top

1 楼robbyzi(红客robby) (★世界真大★)回复于 2004-12-02 13:04:20 得分 0

这是技术问题啊。。  
   
  楼主自己转到技术区去吧。。Top

2 楼h98458(零点起飞)回复于 2004-12-02 14:23:34 得分 0

void   TFrmMain::SetPaperSize(int   w,int   h)   //   ÉèÖÃȱʡ´òÓ¡»úÖ½ÕÅ´óС   w*h(*0.1mm)  
  {  
  char   Device[CCHDEVICENAME];  
  char   Driver[MAX_PATH];  
  char   Port[32];  
  THandle   hDMode;  
  PDevMode   pDMode;  
   
  TPrinter   *Prn   =   Printer();  
  Prn->GetPrinter(Device,Driver,Port,hDMode);  
  if   (hDMode!=NULL)  
  {  
  pDMode=(PDevMode)GlobalLock((HGLOBAL   &)hDMode);  
  if   (pDMode!=NULL)  
  {  
  pDMode->dmPaperSize=   256;  
  pDMode->dmFields=pDMode->dmFields   |   DM_PAPERSIZE;  
  pDMode->dmPaperLength   =h;   //¸ß   *0.1mm  
  pDMode->dmFields   =pDMode->dmFields|   DM_PAPERLENGTH;  
  pDMode->dmPaperWidth   =   w;   //¿í   *0.1mm  
  pDMode->dmFields   =pDMode->dmFields|   DM_PAPERWIDTH;  
  }  
  ResetDC(Prn->Handle,pDMode);  
  GlobalUnlock((HGLOBAL   &)hDMode);  
  }  
  }Top

3 楼h98458(零点起飞)回复于 2004-12-02 14:27:27 得分 20

我编译这段没错,那乱码你不要管它,是程序的中文说明Top

4 楼jw909(姬维)回复于 2004-12-02 14:44:43 得分 0

还是出错啊,不是编译,要看运行。执行到ResetDC(Prn->Handle,pDMode)的时候报Access   Violation   at   address   400C10B4   in   module   'vcl60.bpl'   Read   of   address   3037364C错。Top

5 楼ch_builder(春辉)回复于 2004-12-05 18:03:25 得分 20

这是典型的地址冲突  
  关于这方面的内容你可以问一下CKER,他在这方面水平很高的Top

6 楼lihongxing2002(潇洒)回复于 2004-12-06 09:13:26 得分 10

不错,老大的水平非常高Top

7 楼lidawen(Darwin)回复于 2004-12-06 10:17:01 得分 10

upTop

8 楼jw909(姬维)回复于 2004-12-06 13:36:51 得分 0

谢谢ch_builder(春辉),可我怎么找他呢?Top

9 楼jw909(姬维)回复于 2004-12-09 14:42:51 得分 0

天啊,怎么没人来拯救我啊  
  解决不掉了Top

10 楼robbyzi(红客robby) (★世界真大★)回复于 2004-12-10 12:15:49 得分 20

上他的BLOG留下言吧..  
  http://blog.csdn.net/ckerTop

11 楼cker(〖烟波浩淼三千里、人鬼殊途五百年〗)回复于 2004-12-21 22:13:49 得分 20

1。我这里无法重现你描述的AV。  
   
  2.为什么要ResetDC,多余了吧,SetPrinter才是用来修改打印机模式的。  
   
  Top

12 楼jw909(姬维)回复于 2005-01-24 11:24:33 得分 0

我的操作系统是XP,跟这个有没有关系?  
  可以不用ResetDC?Top

相关问题

  • 报表.
  • 报表
  • 报表
  • 报表
  • 报表。。
  • 报表
  • 求报表,报表,水晶报表!
  • 求报表,报表,水晶报表!~~~~~~~
  • 报表和报表控件
  • VB做报表

关键词

  • null
  • pdmode
  • hdmode
  • dmfields
  • prn
  • resetdc
  • dm
  • pdevmode
  • hglobal
  • papersize

得分解答快速导航

  • 帖主:jw909
  • h98458
  • ch_builder
  • lihongxing2002
  • lidawen
  • robbyzi
  • cker

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo