[英]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.