CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  专题开发/技术/项目 >  多媒体/流媒体开发

大侠请看:好变态的错误!!(高分求教)

楼主greykid()2005-08-18 21:00:56 在 专题开发/技术/项目 / 多媒体/流媒体开发 提问

小弟最近用media   player   sdk编程,环境:winxp   bcb6  
  将sdk的include文件夹下的头文件和需要的dll文件都include进去了。但不知道idl文件是否还用到?  
  一下是出错的代码:  
  #include   <vcl.h>  
  #pragma   hdrstop  
  #include   "wmp.h"  
  #include   "Unit1.h"  
  #include   "tchar.h"  
  #include   "objbase.h"  
  #include   "windows.h"  
  。。。。。。。。。。。  
  。。。。。。。。。。  
  void   __fastcall   TForm1::status(){  
          IWMPCore   *LMediaPlayer;  
          BSTR   pbstrStatus;  
   
          AnsiString   hr,str;  
          HRESULT   res=CoCreateInstance(CLSID_WindowsMediaPlayer,NULL,CLSCTX_ALL,IID_IWMPPlayer,(void**)&LMediaPlayer);  
          if(res){  
          hr=LMediaPlayer->get_status(&pbstrStatus);  
          if(hr=="s_ok"){  
   
          str=stringchange(pbstrStatus);  
          //tchar   szValue[1000];  
          //wsprintf(szValue,   _T("Status   =   %s"),   stringchange(value));  
          MessageBox(NULL,   "str.c_str()",   "IWMPCore->status",   MB_OK);   }  
          //else   return   0;  
    }  
  }  
   
  编译时出错:  
  [Linker   Error]   Unresolved   external   '_IID_IWMPPlayer'   referenced   from   E:\ASF\UNIT1.OBJ  
  [Linker   Error]   Unresolved   external   '_CLSID_WindowsMediaPlayer'   referenced   from   E:\ASF\UNIT1.OBJ  
  小弟实在不知道原因,还请大侠赐教! 问题点数:100、回复次数:9Top

1 楼jemyzhang(妙狐)回复于 2005-08-18 22:28:47 得分 10

windows的包可能跟bcb不兼容,必须用将容的包才行Top

2 楼greykid()回复于 2005-08-19 08:14:42 得分 0

include文件夹下的idl文件   再编程时需要马?  
  应该怎样用??Top

3 楼yyhzpk(zpk)回复于 2005-08-19 10:33:10 得分 10

工程lib路径对不对Top

4 楼ablewindy(我是【风子】我怕谁)回复于 2005-08-19 13:00:34 得分 20

可能相关的库没导入吧!Top

5 楼Bill1212(Bill)回复于 2005-08-19 16:23:07 得分 10

你在文件顶部加上  
  #include   <initguid.h>  
  试试看Top

6 楼greykid()回复于 2005-08-20 11:16:08 得分 0

我加了#include   <initguid.h>  
  可还是不行,就是那两个错。  
  各位大侠帮忙啊!Top

7 楼videojet(虫虫)回复于 2005-08-21 13:09:56 得分 20

自己将这两个GUID定义一下也可以解决的Top

8 楼greykid()回复于 2005-08-21 16:25:11 得分 0

IWMPCore   *LMediaPlayer;  
          BSTR   pbstrStatus;  
   
          AnsiString   str;  
          CoInitialize(0);  
          HRESULT   res=CoCreateInstance(CLSID_WindowsMediaPlayer,NULL,CLSCTX_ALL,IID_IWMPPlayer,(void**)&LMediaPlayer);  
   
          if(res==S_OK){  
          HRESULT   hr=LMediaPlayer->get_status(&pbstrStatus);  
          if(hr==S_OK){  
          str=AnsiString(WideString(pbstrStatus));  
   
   
          MessageBox(NULL,str.c_str(),"IWMPCore->status",   MB_OK);  
    }}  
        CoUninitialize();  
        LMediaPlayer->Release();  
  }  
  我这样写能调用函数get_status马??Top

9 楼Afile(猎头炳)回复于 2005-08-29 04:17:55 得分 30

[Linker   Error]   Unresolved   external   '_IID_IWMPPlayer'   referenced   from   E:\ASF\UNIT1.OBJ  
   
  找到IID_IWMPPlayer的定义,把它重制到你的头文件里,改个名字,然后定义成比如:  
   
  static   GUID   MYIID_IWMPPlayer   =   {  
  0x56a868b5,0x0ad4,0x11ce,0xb0,0x3a,0x00,0x20,0xaf,0x0b,0xa7,0x70};  
   
  的样子,当然,GUID的具体值还是看你原来粘过来的。  
   
  然后把代码改写成:  
  HRESULT   res=CoCreateInstance(CLSID_WindowsMediaPlayer,NULL,CLSCTX_ALL,MYIID_IWMPPlayer,(void**)&LMediaPlayer);  
   
  应该就能过了,我也不知道为什么。我在BCB下写DirectShow的时候也出现过同样的问题,自已定义一次GUID就行,我想和没有可用的链接库有关吧,或是BCB不把原来的定义方法作为静态定义解释也有可能。Top

相关问题

  • 高分请教,0x80070005错误
  • 电脑蓝屏的错误请高手分析错误....
  • 为倒分错误散分!请原谅!!
  • 错误分析
  • 分页错误???
  • 错误分析
  • 放分!!请帮偶找出错误
  • 50分请教一个编译错误!
  • error c1189错误请高分求解
  • 为了防止程序出现错误,请问如何拦截错误并处理错误!!100分

关键词

  • 文件
  • bcb
  • hr
  • lmediaplayer
  • iwmpplayer
  • pbstrstatus
  • iwmpcore
  • windowsmediaplayer
  • 大侠
  • 定义

得分解答快速导航

  • 帖主:greykid
  • jemyzhang
  • yyhzpk
  • ablewindy
  • Bill1212
  • videojet
  • Afile

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo