因为comutil.h没被包含出现错误带来的疑问
在编写com工程时候,写dll引入函数,出现了很莫名其妙的错误
error C2143: syntax error : missing ',' before '&'
error C2059: syntax error : '&'
error C2660: 'RegisterServer' : function does not take 5 parameters
error C2660: 'UnregisterServer' : function does not take 3 parameters
提示函数没定义5个,看源码明明是5个,那编译器认为是几个?于是一个参数一个参数的去掉,减到只剩下一个的时候才不报参数数目的错误,说类型的问题。
难道它认为的参数只有一个?参数第一个是CLSID,后来想到可能是头文件出了问题,然后查到最后的原因是comutil.h。
里面定义了类_bstr_t和variant,后来去查CLSID的数据结构,没发现跟这两个数据结构有关。
我想到comutil.h定义的两个数据类是为了C++编写com的时候进行必要的类型转换,使得C++的变量类型符合COM标准,但是不知道该具体工程具体是哪个地方用到了comutil.h,请熟悉COM的同学们赐教。