[英]Using Excel through vtable interface
我正在通过C ++学习COM编程。 据我了解,在双重接口的客户端,您有两种选择:
我想通过C ++程序创建一个非常复杂的Excel工作簿(我坚持使用C ++代替C#或其他任何东西)。 使用1.方法,我能够编写一个可以正常运行的程序。 但是,我有两个问题:(A)由于调用了Invoke,所以代码很笨拙;(B)相当快,但是我希望它更快。
所以我想尝试2.方式。 我只是缺少.h和.c文件,因为与我阅读的书籍中的示例不同,这些文件不是由另一个示例项目而是由Microsoft创建的。
我的问题是:
我建议不要这样做。 而且,我有我的理由...
对于简单的事情,仅将excel.exe分解并将数据从一个进程编组到另一个进程就消耗了大多数时间。 这些事情比使用C ++接口所获得的结果要大得多。
但是,最大的原因是:有时出于某些原因,有时无法在客户端计算机上正确安装或注册Office。 有时会发生接口未正确注册的情况。 如果接口未正确注册,则将使您费劲,以找出程序失败的原因。 最终,您可能会发现。 然后,唯一的办法就是告诉客户重新安装Office并希望它能够正确安装,或者创建一个.reg文件,并让客户应用reg文件来修复接口(如果他具有管理员特权,并且您知道哪个是Windows XP的)。缺少接口。
如果使用IDispatch,则缺少接口都没有关系。 我已经用Word学会了这一困难的方法。 您已经可以使用...
如果您坚持,则可以尝试:
#import "progid:Excel.Sheet" // plus a bunch of other options like rename() etc...
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.