Visual Studio 2003 VC7.1 部分问题集---学习笔记

Visual Studio 2003 VC7.1 部分问题集---学习笔记

1
环境: Visual Studio 2003
 
CString     strFilter = L" video File (*.avi)|*.avi|"; 编译无法通过的处理办法,即 L 报错,去掉 L 则无错
 
将工程属性 -- general-->character set 设置为 Use Unicode Character Set
如下图:
 
 
2 //
环境: Visual Studio 2003
 
hr = CoCreateInstance(CLSID_FilterGraph, NULL, CLSCTX_INPROC_SERVER,IID_IGraphBuilder,reinterpret_cast<void**>(&m_pGBuilder)); 返回hr值为:Coinitialize has not been called  的解决办法:
主要是DCom未实例化的原因.
此种问题的解决主要是手工调用,并调用相关的函数 Coinitialize(null)和CoUninitialize;
具体实现为在 InitInstance () 函数第一行添加一行 CoInitialize(NULL); 如下
BOOL CPlayerApp::InitInstance()
{
    CoInitialize(NULL);
       
    //
    //
    //
    InitCommonControls();
 
    CWinApp::InitInstance();
 
    AfxEnableControlContainer();
   
    。。。。。。。。
。。。。。。。。
}
同时在 cpp 文件的最后添加函数 ExitInstance () ,重载系统函数 ExitInstance 并在其中手工添加 CoUninitialize () 方法 ;
 
。。。。。
。。。。
}
 
int CPlayerApp::ExitInstance()
{
    CoUninitialize();
    return CWinApp::ExitInstance();
}
 
3 ///
环境: Visual Studio 2003
 
使用 DrectShow 时需要的三个 lib 文件 : strmbasd.lib uuid.lib winmm.lib
否则会出现如下错误:
 
其中 strmbasd.lib 只在 DirectX9.0b SDK 及其之前版本中才有(需要编译)。
加入工程中的方法如图:
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值