乐筑天下

搜索
欢迎各位开发者和用户入驻本平台 尊重版权,从我做起,拒绝盗版,拒绝倒卖 签到、发布资源、邀请好友注册,可以获得银币 请注意保管好自己的密码,避免账户资金被盗
查看: 83|回复: 4

PLT打印任务代码报错问题,求高手指点啊

[复制链接]

16

主题

51

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2013-10-17 16:25:00 | 显示全部楼层 |阅读模式
在执行打印任务,保存plt文件的代码中,pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kDialogTitle,_T("lot API Progress"));这行代码时即报错,

0wxrk4ecmpb.jpg

0wxrk4ecmpb.jpg


,不知啥原因,急求高手指点啊。(注:代码中标红部分即为开始报错的地方)
Acad::ErrorStatus es;
  
es = m_pPSV->setPlotType(m_pPlotSettings, AcDbPlotSettings::kExtents);
//设置缩放比例
es = m_pPSV->setUseStandardScale(m_pPlotSettings, Adesk::kFalse);
es = m_pPSV->setCustomPrintScale(m_pPlotSettings, 1, 1);
es = m_pPSV->setPlotCentered(m_pPlotSettings, true);
es = m_pPSV->setPlotCfgName(m_pPlotSettings,m_strDevice);
m_pPSV->refreshLists(m_pPlotSettings);
AcPlPlotEngine* pEngine = NULL;
  if(Acad::eOk == AcPlPlotFactory::createPublishEngine(pEngine))
{
// 打印进度对话框
AcPlPlotProgressDialog *pPlotProgDlg = acplCreatePlotProgressDialog(acedGetAcadFrame()->m_hWnd,false,1);
AfxMessageBox("打印进度对话框开始...");
      
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kDialogTitle,_T("lot API Progress"));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kCancelJobBtnMsg,_T("Cancel Job"));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kCancelSheetBtnMsg,_T("Cancel Sheet"));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kSheetSetProgressCaption,_T("Job Progress"));
pPlotProgDlg->setPlotMsgString(AcPlPlotProgressDialog::kSheetProgressCaption,_T("Sheet Progress"));
      
pPlotProgDlg->setPlotProgressRange(0,100);
pPlotProgDlg->onBeginPlot();
pPlotProgDlg->setIsVisible(true);
      
es = pEngine->beginPlot(pPlotProgDlg);
  
AcPlPlotPageInfo pageInfo;
AcPlPlotInfo plotInfo;
      
// 设置布局
plotInfo.setLayout(m_layoutId);
// 重置参数
plotInfo.setOverrideSettings(m_pPlotSettings);
AcPlPlotInfoValidator validator;
   validator.setMediaMatchingPolicy(AcPlPlotInfoValidator::kMatchEnabled);
es = validator.validate(plotInfo);
// 开始打印
const TCHAR *szDocName = acDocManager->curDocument()->fileName();
es = pEngine->beginDocument(plotInfo, szDocName, NULL, 1, true, m_strPath);
// 给打印机和进度对话框发送消息
pPlotProgDlg->onBeginSheet();
pPlotProgDlg->setSheetProgressRange(0, 100);
pPlotProgDlg->setSheetProgressPos(0);
es = pEngine->beginPage(pageInfo, plotInfo, true);     
es = pEngine->beginGenerateGraphics();
es = pEngine->endGenerateGraphics();
es = pEngine->endPage();
pPlotProgDlg->setSheetProgressPos(100);
pPlotProgDlg->onEndSheet();
pPlotProgDlg->setPlotProgressPos(100);
es = pEngine->endDocument();
es = pEngine->endPlot();
  
pEngine->destroy();
pEngine = NULL;
pPlotProgDlg->destroy();
}
else
{
  acedAlert(_T("打印失败!"));
}
回复

使用道具 举报

16

主题

51

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2013-10-17 16:27:00 | 显示全部楼层
着急中,自已先顶一下。。。
回复

使用道具 举报

32

主题

268

帖子

10

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
396
发表于 2013-10-17 18:45:00 | 显示全部楼层

AcPlPlotProgressDialog *pPlotProgDlg = acplCreatePlotProgressDialog(acedGetAcadFrame()->m_hWnd,false,1);
pPlotProgDlg 的返回值是不是空的?
回复

使用道具 举报

16

主题

51

帖子

3

银币

初露锋芒

Rank: 3Rank: 3Rank: 3

铜币
115
发表于 2013-10-20 17:21:00 | 显示全部楼层
这个进度对话框是可以不要的,我把关于pPlotProgDlg 的代码都注释掉也不行啊。
回复

使用道具 举报

32

主题

268

帖子

10

银币

后起之秀

Rank: 20Rank: 20Rank: 20Rank: 20

铜币
396
发表于 2013-10-20 18:40:00 | 显示全部楼层

能加入es =。。的地方都加入,调试时断点跟踪看看哪里出问题
回复

使用道具 举报

发表回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 微信公众平台

  • 扫描访问手机版

  • 点击图片下载手机App

QQ|关于我们|小黑屋|乐筑天下 繁体中文

GMT+8, 2025-2-5 06:59 , Processed in 0.170415 second(s), 65 queries .

© 2020-2025 乐筑天下

联系客服 关注微信 帮助中心 下载APP 返回顶部 返回列表