.obj : error LNK2001: unresolved external symbol _IID_IX 头文件的顺序问题(以COM技术内幕第七章为例)

用VC++WIN32 Dynamic_link Library 编写 COM组件时。当各个需要编写的类写完之后,也能各自编译通过时,但当生成DLL里却对各个接口的UUID产生如下错误时(以COM技术内幕第七章为例,这时本人用VC++实现的):

.obj : error LNK2001: unresolved external symbol _IID_IX
.obj : error LNK2001: unresolved external symbol _IID_IY
.obj : error LNK2001: unresolved external symbol _IID_IZ

 

这个很有可能是在与此工程同名的.cpp文件里由之前编写的头文件的使用顺序错误引起的。应当先引用标准库头文件,再接口实现和类厂实现的头文件,最后是引用由IDL文件生成的xxxx_i.c文件。这样应能解决上面的问题了。

你可能感兴趣的:(组件技术,学习后感)