我在哪里可以找到MS Office接口在C++和COM中执行一些自动化
我找到MSPPT.OLB
文件,但无法使用Oleview.exe
打开它。我在哪里可以找到MS Office接口在C++和COM中执行一些自动化
MSDN上没有这个文档,我只能找到C#接口。 (可能是我错过了/或者不是谷歌的一个非常好的用户)
寻找.OLB文件。例如,Office 2010的:
C:\Program Files (x86)\Microsoft Office\Office14>dir *.olb Directory of C:\Program Files (x86)\Microsoft Office\Office14 10/20/2010 03:36 PM 677,248 MSACC.OLB 03/22/2010 08:29 PM 417,144 MSOUTL.OLB 03/08/2010 06:23 PM 402,824 MSPPT.OLB 03/26/2010 08:52 PM 901,464 MSWORD.OLB
另外:C:\Program Files (x86)\Common Files\microsoft shared\OFFICE14\MSO.DLL
一些调整,你可以使用MSVC++ #import
侦探生成C++包装:
#import "TypeLib\MSWORD.OLB" \
raw_interfaces_only, \
rename("ExitWindows","MsoExitWindows"), \
rename("FindText","MsoFindText"), \
named_guids
这个#import指令将帮助他的几率为零。从错误的路径和错误的类型库开始。你必须让这个人有机会找到与谷歌命中的比赛,聪明的指针和_com_error是非常重要的,以防止他的麻烦。 –
@HansPassant,我鼓励OP自己研究'#import'的威力。在这里我贴上了曾经为我工作过的东西。 – Noseratio
@Noseratio,与.olb文件也得到相同的错误,所以不能用'Oleview.exe'打开它们。将尝试#import指令并在此处更新结果。谢谢。 –
试图打开EXCEL.EXE等类型图书馆? –
不..我仍然得到相同的错误,'MkParseDisplayName(...)失败。无效语法(MK_E_SYNTAX)'然后'命令行POWERPNT.EXE不包含有效的持久性OLE对象ProgID或类型库文件(TYPE_E_CANTLOADLIBRARY)' –
阅读错误消息。它表示您正在尝试查看POWERPNT.EXE。错误的文件。 Oleview.exe暂时停用了一段时间,SDK版本7.0中的iirc(VS2010年份)。无论如何,它不会帮助你,在C++程序中使用#import指令来导入类型库。使用C#进行互操作将是明智之举,你会发现更多的帮助,并且必须编写更少的代码。 –