我正在通過C++學習COM編程。據我瞭解,在雙接口的客戶端,你有兩個選擇:通過vtable接口使用Excel
- 獲取IDispatch接口,查詢的DISPID用的GetIDsOfNames,並使用調用訪問方法和屬性。
- 在您的項目中包含帶有接口定義的.h頭文件和帶MIDL創建的GUID的.c源文件,並直接通過vtable調用這些函數,vtable是編譯器從.h文件中已知的。
我想從C++程序創建一個相當複雜的Excel工作簿(我堅持使用C++而不是C#或其他)。使用這種方式,我能夠編寫一個正確運行的程序。但是,我有兩個問題:(A)由於調用調用,代碼非常笨拙,(B)速度很快,但我希望它更快。
所以我想試試2.方式。我只是缺少.h和.c文件,因爲與我讀的書中的示例不同,這些文件不是由另一個示例項目創建的,而是由Microsoft創建的。
我的問題是:
- 我在哪裏可以找到這些文件?
- 與方式1相比,我可以從方式2中獲得多少性能提升。
有沒有h和.c文件,但有一個類型庫(捆綁到EXCEL.EXE)。請參閱['#import directive'](https://msdn.microsoft.com/en-us/library/8etzzkb6.aspx) –
使用C API XLL接口而不是COM會更好/更快。 https://msdn.microsoft.com/en-us/library/office/bb687883.aspx –