使用CoCreateInstance()得到一个指向IID_IDirectMusicSynth接口的指针,编译通过,但有个链接错误“unresolved external symbol _IID_IDirectMusicSynth”
这是什么地方出了问题呢?

解决方案 »

  1.   

    我有两种方法解决,仅供参考1.重建新工程,霍霍2.去掉包含的xxx_i.c头文件,将该文件下的iid和clsid等3个全局变量拷入本工程CoCreateInstance函数的前面,将iid该别的名称,然后在CoCreateInstance(x,x,x,&IID IID_IIDataSource2 ,x); 这样就能编译过了//const IID IID_IIDataSource = {0x201DF8BA,0x0ADC,0x4EF5,{0xB2,0xA0,0x1F,0xEA,0x77,0xF4,0xA6,0x9C}};//这个已经重复定义了,不知道编译器怎么搞的
    const IID IID_IIDataSource2 = {0x201DF8BA,0x0ADC,0x4FF5,{0xB2,0xA0,0x1F,0xEA,0x77,0xF4,0xA6,0x9C}};// 改个名称const IID LIBID_DSCOMLib = {0x6A4AD02F,0xEE28,0x4770,{0x8D,0xBE,0xCF,0x8C,0x22,0x75,0x29,0x92}};const CLSID CLSID_IDataSource = {0x891E13C9,0x6FC2,0x4377,{0x9B,0xF6,0xB2,0xB5,0x4D,0x6F,0xA0,0x07}};
      

  2.   

    第一种方法已经试了,没用:(
    第二种方法,因为我用到的该头文件里的定义很多,这样改会影响到别的接口。
    请大家再给点别的意见吧,就这一个不行,用同样的方法得到IID_IDirectMusic8的指针就可以!去掉这一行程序就链接正常啦。
      

  3.   

    IID_IDirectMusicSynth得包含进来,
      

  4.   

    问题已经解决了,谢谢wened(阿坟)