【问题标题】:PDFCreator and COMPDFCreator 和 COM
【发布时间】:2015-03-09 11:12:59
【问题描述】:

我正在尝试从 C++ 与 PDFCreator 交谈。在不同版本的网站上似乎有一个例子。但是示例中的某些内容让我担心(可能是因为我不是 COM 专家)...

  PDFCreator::_clsPDFCreatorOptionsPtr opt = pdfObject->GetcOptions();
  opt->UseAutosave = 1;
  opt->UseAutosaveDirectory = 1;
  opt->AutosaveDirectory = "c:\\temp\\";
  opt->AutosaveFormat = 0; // for PDF
  opt->AutosaveFilename = "gigi13";
  pdfObject->PutRefcOptions(opt);

所以我得到一个指向 PDFCreator 选项的指针,将它们设置为我想要的,然后使用PutRefcOptions 在 PDFCreator 中设置选项。

所以我的愚蠢问题是,如果我有一个指向选项的指针,我不是直接设置它们,例如,opt->AutoSave = 1 吗?

或者PDFCreator::_clsPDFCreatorOptionsPtr 是否持有选项的副本?也许是因为PDFCreator::_clsPDFCreatorOptionsPtr 是一个智能指针,因此拥有选项的副本?

【问题讨论】:

  • 不确定我是否理解您的困惑所在。一个指针指向一个对象。您在对象本身中设置值,除了让您访问对象之外,指针不会做任何事情。
  • 现在我认为该对象存在于堆栈中,它不是“指向”PDFCreator。因此,我得到了选项的副本,更改它们,然后将它们“放回 PDFCreator”。
  • 好的,我现在明白了。我们正在谈论两个不同的对象,一个由pdfObject 指向的原始对象和另一个由opt 指向的对象,它是选项的副本。没有理由相信它们是同一个对象,因为您所做的修改需要保存。
  • 是的,据我所知(现在!)。 opt 是一个智能指针,它创建 pdfObiect 内容的副本

标签: c++ pdf com pdf-generation


【解决方案1】:

据我所知(现在!)。 opt 是一个智能指针,它创建 pdfObiect 内容的副本。

所以我修改了该副本,然后将其发送回 pdfCreator。有道理。

【讨论】:

  • 不一定是整个对象的副本,只是选项部分。
  • 是的,我的解释很笨拙。整个选项对象的副本就是我的意思...
猜你喜欢
  • 2020-02-12
  • 2010-09-18
  • 2018-10-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-01
  • 2012-02-07
相关资源
最近更新 更多