我想创建一个库来包装Excel自动化并只公开其一些功能。 我使用的#import机制与Excel的COM工作,所以现在我有:如何转发声明_com_ptr_t指针?
// EXCELAPP.H
#import "C:\\PathTo\\mso.dll" //...
#import "C:\\PathTo\\VBE6EXT.OLB" //...
#import "C:\\PathTo\\EXCEL.EXE" //...
class ExcelApp
{
public:
ExcelApp();
~ExcelApp();
void CloseExcel();
void ShowWindow();
void HideWindow();
// ...
private:
Excel::_ApplicationPtr m_app;
};
这是一个静态库项目,我使用它只是从我的程序罚款。
事情是,我想从图书馆的用户那里“隐藏”它是如何实现的。实施可能在未来发生变化。另外,在.h文件中导入所有的COM接口都会暴露给库的用户,我不希望它们(包括我未来自己)滥用它。
所以我想做一些像PImpl成语一样的东西,但我至少需要向前声明m_app,我不知道该怎么做。
那么,有没有什么办法来转发像Excel :: _ApplicationPtr声明_com_ptr_t指针?还是有更好的方法来做我想做的事情?
有时候我觉得自己是一个完全新手......我怎么没有想到这个?我不知道这是否是最好的解决方案,但它应该发生在我身上...... – MikMik