如何在所有版本上使用c++动态地访问从outlook中提取联系人
How to access extract contacts from outlook using C++ dynamically on all versions
我想使用c++从outlook(主要是联系人)中提取数据。我已经找到了方法:http://www.codeproject.com/Articles/3695/Importing-contacts-from-Outlook?msg=3005747#xx3005747xx
但是这里的导入语句是硬编码的:#import "E:Program FilesCommon FilesMicrosoft SharedOffice10mso.dll"
是否可以动态加载dll和tlb文件并使用它,以便软件可以在不同版本的outlook和windows中工作?(目前通过硬编码,我无法访问不同版本的outlook,因为路径不同)
像这样导入DLL并不意味着您以任何方式链接到有问题的DLL。它只是意味着它将导入DLL包含的类型库。类型库将描述你想要使用的COM组件:接口、协类、guids、iids、枚举等。
在运行时,当你实例化一个COM类时,COM将从被标记为服务它的组件中创建一个它的实例。所以在Office的情况下,如果你只安装了Office 14, Office 14将被标记为这个类的COM服务器,你甚至不知道实际上会加载什么DLL。
即使你硬编码了你所依赖的Office类型库的版本,它也应该与Office的后续版本一起工作,因为COM依赖于永远不会改变的二进制契约。
当然,如果你导入Office 10库,你将无法使用Office 14的新组件。
不要将#import指向文件,而是提供类名或类型库GUID。http://msdn.microsoft.com/en-us/library/8etzzkb6 (v = vs.71) . aspx
- 访问动态分配列表中的元素
- C++ 中动态二维数组的访问冲突
- 0xC0000005:访问冲突写入位置0xCDCDCDCD动态分配错误
- 是否可以使用宏来访问动态数组或向量中的元素或为其赋值
- 如何修复访问动态数组中结构中的字符串变量时"segmentation fault (core dumped)"错误
- C++ 如何使用类方法正确访问动态数组元素
- 访问动态 2D 字符数组时引发访问冲突异常
- 虚幻引擎:访问动态产卵的蓝图实例数据
- 尝试使用成员函数访问动态分配的成员变量时读取访问冲突
- 如何在c++中访问动态分配的矩阵
- Qt:我什么时候可以从qtcreator访问动态属性
- 访问动态创建的对象 c++
- 引用变量可以访问动态分配的内存
- 如何从传递给c++中的函数的对象访问动态2D数组
- C++从不同的cpp访问动态结构
- 访问动态2D字符数组C++
- 如何访问动态对象属性
- c++为什么不使用星号操作符访问动态数组
- 如何访问动态c++数组变量,属于一个对象,与Python
- c++:随机访问动态数组