ICDBIPtr pTemp;
HRESULT hr=pTemp.CreateInstance(CLSID_CDBI);其中CLSID_CDBI,我查找了一下,是在*.tlh中定义的,可是ATL COM 向导生成的文件夹中并没有此文件,请问这是怎么回事?extern "C" const GUID __declspec(selectany) CLSID_CDBI =
{0x69dbdeed,0x9590,0x4f4f,{0x86,0x29,0x68,0x55,0x8d,0x0b,0x8c,0x93}};
HRESULT hr=pTemp.CreateInstance(CLSID_CDBI);其中CLSID_CDBI,我查找了一下,是在*.tlh中定义的,可是ATL COM 向导生成的文件夹中并没有此文件,请问这是怎么回事?extern "C" const GUID __declspec(selectany) CLSID_CDBI =
{0x69dbdeed,0x9590,0x4f4f,{0x86,0x29,0x68,0x55,0x8d,0x0b,0x8c,0x93}};
不过不知楼主怎么做的,#import生成的*.tli和*.tlh不会以上面的形式声明CLSID和IID,而是使用__uuidof操作符来获取CLSID和IID。因为*.tlh和*.tli可能被包含在两个以上的源文件中,如果使用上面的定义方式,则多个模块文件有多个实例,连接时将会发生错误。
所以,如果你想使用CLSID,对于你上面的代码,极有可能是CoCreateInstance( __uuidof( CDBI ) );而IID极有可能是__uuidof( ICDBI )