引用POOM函数后 链接错误

来源:互联网 发布:打鱼软件开发购买 编辑:程序博客网 时间:2024/05/17 03:11

开发一个pim新功能时候碰到了问题:LNK2001

unresolved external symbol IID_IPOutlookApp2

unresolved external symbol IID_IItem

...

 

记得以前引用pim的功能后也发生过这样的错误,不记得当时怎么解决了。不巧前几天又碰到了问题,在网络上折腾了半天,还是没有解决,说什么把头文件放到stdafx.h里面,或在工程里面用#progma comments导入pimstore.lib。

 

经过测试发现都都无法解决,怀疑其他人可能是碰巧才解决,研究了一下根本原因是头文件引用顺序不对。

首先得在pimstore.h前面包含 #include <initguid.h>。而且initguid.h不能被多次包含,否则会引起编译错误:

error LNK2005: IID_IException already defined in Xxxx.obj

 

最好的办法就是在你的class头里面包含pimstore.h。在class的实现里面的 #include "classA.h" 前包含 #include <initguid.h>,使得编译起只把<initguid.h>放在classA.obj里面。

 

希望对其他碰到问题的人有用处。

 

 

 

 

原创粉丝点击