pdf的高手来看一下,一直在线,解决就给分!

zafiri 2005-04-07 09:45:55
对象是Adobe reader7.0。
#import "D:\Program Files\Adobe reader7.0\ActiveX\AcroPDF.dll"

CoInitialize(NULL);
HRESULT hr;
CLSID clsid;
Acrobat::CAcroAppPtr ptr;
hr=CLSIDFromProgID(OLESTR("AcroExch.App"),&clsid);
hr=CoCreateInstance(clsid,NULL,CLSCTX_SERVER,IID_IUnknown,(void**)&ptr);
ptr->QueryInterface(__uuidof(Acrobat::CAcroApp),(void**)&ptr); ------(1)
ptr->Exit();
执行到(1)之前都没问题,acrobat.exe也已经开始运行了。但是执行到(1)时,出现了下面的错误:
Unhandled exception in sigWave.exe(KERNEL32.DLL):0xE6D7363:Microsoft C++ Exception.
我真的不知道该怎么得到接口的指针,望高手赐教.
...全文
292 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bobob 2005-04-08
  • 打赏
  • 举报
回复
我还以为是pdf~~原来不是
firmbird 2005-04-08
  • 打赏
  • 举报
回复
不是吧,我这里写了一个测试程序怎么就可以运行呢?
zafiri 2005-04-08
  • 打赏
  • 举报
回复
ptr->Show();是没错,可是什么也不反应,
但是如果调用ptr->Exit()就出错了。
firmbird 2005-04-08
  • 打赏
  • 举报
回复
CAcroAppPtr ptr;
HRESULT hr=ptr.CreateInstance("AcroExch.App");
if(FAILED(hr)){
MessageBox("Failure");
}
ptr->Show();
//ptr->Exit();

这样也会错???
zafiri 2005-04-08
  • 打赏
  • 举报
回复
高手们,该出手时就出手呀,风风火火闯九洲
zafiri 2005-04-08
  • 打赏
  • 举报
回复
虽然可以直接用CreateInstance方法创建实例,可是调用函数时出现的错误还是一样。
从现在起一直在线,解决就给分。
firmbird 2005-04-08
  • 打赏
  • 举报
回复
Acrobat::CAcroAppPtr已经是一个智能指针封装类,你可以直接调用它上面的CreateInstance方法创建实例。
zafiri 2005-04-08
  • 打赏
  • 举报
回复
原来是我自己同时安装了6.0和7.0两个版本,我把import语句改成
#import "C:\Program Files\Adobe\Acrobat 6.0\Acrobat\acrobat.tlb" \
再执行就可以了。
zafiri 2005-04-08
  • 打赏
  • 举报
回复
to firmbird.
是同样的程序吗?
signoft 2005-04-07
  • 打赏
  • 举报
回复
帮你顶 学习

3,248

社区成员

发帖
与我相关
我的任务
社区描述
ATL,Active Template Library活动(动态)模板库,是一种微软程序库,支持利用C++语言编写ASP代码以及其它ActiveX程序。
社区管理员
  • ATL/ActiveX/COM社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧