我正在通过C++学习COM编程。据我所知,在双接口的客户端,您有两个选择:
我想从C++程序中创建一个相当复杂的(我坚持使用C++而不是C#或其他任何东西)。使用1.方式,我能够编写一个正确运行的程序。但是,我有两个问题:(A)由于调用的调用,代码非常笨拙,(B)它相当快,但我希望它更快。
所以我想试试2。方法。我只是缺少.h和.c文件,因为与我所读的书中的示例不同,这些文件不是由另一个示例项目创建的,而是由微软创建的。
我的问题是:
发布于 2016-11-17 20:40:39
我建议不要这么做。我有我的理由..。
对于简单的事情,只是旋转excel.exe和封送数据从一个进程到另一个进程消耗了大部分时间。这些事情比在使用C++接口时可能得到的东西要大得多。
然而,最大的原因是:有时Office没有在客户端machine...for上正确安装或注册,不管是什么原因。有时会发生的情况是,接口没有正确注册。如果界面没有被正确注册,你会试图找出你的程序失败的原因。最终你会想出办法的。然后,您唯一的方法是告诉您的客户重新安装Office并希望它正确安装,或者创建一个.reg文件,让客户应用reg文件修复接口,如果他拥有管理员权限,并且您知道哪些是缺少的接口。
如果您使用IDispatch,那么是否缺少接口并不重要。我从文字中学到了这一点。你已经让它起作用了。
如果你坚持,那么你可以尝试:
#import "progid:Excel.Sheet" // plus a bunch of other options like rename() etc...https://stackoverflow.com/questions/40659048
复制相似问题