cngreatwall

赫赫盛唐艺轩

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

2012年2月28日

摘要: 检索 COM 类工厂中 CLSID 为 { } 的组件时失败,原因是呈现以下错误: 80040154首先是要确认被调用com是否注册,如果没有注册,需要用管理员身份运行cmd, 进行 regsvr32 ****.dll(.ocx)等注册,相互引用的,也需要注册,可以通过depends查看引用关系其次,在64位系统中,即便是注册提示成功,也可能会提示这个错误,由于多数com组件都是基于32位系统,需要在引用com组件的工程中,在工程属性里面找到目标平台(属性--生成--常规--目标平台:)选择x86,就可以让工程识别出com备忘,记录 阅读全文
posted @ 2012-02-28 09:31 cngreatwall 阅读(6703) 评论(2) 推荐(0) 编辑

2012年1月14日

摘要: prj0050errorPRJ0050:未能注册输出。请确保您有修改注册表的相应权限。msdn google codeguru 近两天时间无果,管理员权限启动、拷贝相关DLL到同一路径、添加PATH设置等,都未顺利解决,终于在今天晚上冷静思索后解决以备忘:在win7 ,主要是uca权限控制,限定了对注册表的修改,通过编译日志发现注册信息为:regsvr32 /s /n /i:user ".\***.dll",权限不够,后在atl工程文件属性里面发现:连接器--清单文件--UAC执行级别为 asInvoker,调整为:requireAdministrator ;再执行编译,o 阅读全文
posted @ 2012-01-14 20:47 cngreatwall 阅读(369) 评论(0) 推荐(0) 编辑

2012年1月13日

摘要: .NET (vb)与 c++ 开发的32位 COM组件经常被包含在一个应用程序中. 但部署到windows 7 64位系统后 有可能会出现 "检索COM类工厂组件的CLSID 80040154"错误.经过多次调整测试,原dll工程可以不进行另外设置,需要将.NET(VB)工程属性进行设置,即可 在.NET 工程中,右键点击工程 -> 属性 打开工程属性配置页 进入高级编译选项: 重新生成后 可解决64位机器上, .net 程序调用32位COM问题. 阅读全文
posted @ 2012-01-13 09:53 cngreatwall 阅读(734) 评论(0) 推荐(0) 编辑

2011年9月2日

摘要: HRESULT CVideoSource::GetFameImageFromAVI(TCHAR * szAVIFileSource, TCHAR * szImageFileDest){HRESULT hr;// 定义IMediaDet接口实例CComPtr< IMediaDet > pDet;hr = CoCreateInstance( CLSID_MediaDet, NULL, CLSCTX_INPROC_SERVER, IID_IMediaDet, (void**) &pDet );if (FAILED(hr))return hr;// 将影片文件名转换成BSTR类型C 阅读全文
posted @ 2011-09-02 11:46 cngreatwall 阅读(350) 评论(0) 推荐(0) 编辑

摘要: HRESULT CVideoSource::RecoderAVIFrames(char* szFile){ HRESULT hr = NULL;OFSTRUCT os;//IBaseFilter *pMux;IFileSinkFilter *pSink;IConfigAviMux * pConfigAviMux;if(OpenFile(szFile, &os, OF_EXIST) == HFILE_ERROR){// bring up dialog, and set new file size/*CFile f;bool bFile = f.Open(szFile,CFile::mod 阅读全文
posted @ 2011-09-02 11:44 cngreatwall 阅读(729) 评论(0) 推荐(0) 编辑

摘要: HRESULT CVideoSource::SaveToBmpFile(char* szFile){HRESULT hr =NULL;TRY {BYTE *buffer = NULL; hr = m_pWindowsLessControl->GetCurrentImage(&buffer); if (!SUCCEEDED(hr)) { return hr;}BITMAPFILEHEADER hdr; BITMAPINFOHEADER *lpbi = (BITMAPINFOHEADER *)buffer; //颜色空间转换,如果为32位位图,转换为24bool isSize24 = 阅读全文
posted @ 2011-09-02 11:42 cngreatwall 阅读(403) 评论(0) 推荐(0) 编辑

摘要: HRESULT CVideoSource::RenderStream( ){//CoInitialize(NULL);HRESULT hr = NULL;hr=m_pBuilder->RenderStream(&PIN_CATEGORY_PREVIEW,//&PIN_CATEGORY_CAPTURE, // Pin category&MEDIATYPE_Video, // Media typem_pVideoCap, // Capture filterNULL,//m_pVidCompress, // Compression filter (optional)NU 阅读全文
posted @ 2011-09-02 11:40 cngreatwall 阅读(354) 评论(0) 推荐(0) 编辑

摘要: HRESULT CVideoSource::AddWindowLessRender( HWND hwndApp, RECT win_rect) // Window to hold the video. { HRESULT hr = NULL;CRect rcSrc, rcDest; hr=CoCreateInstance(CLSID_VideoMixingRenderer, NULL, CLSCTX_INPROC_SERVER, IID_IBaseFilter, (void **)&m_pVideoRender);if(hr!=S_OK)return hr;// Create the 阅读全文
posted @ 2011-09-02 11:39 cngreatwall 阅读(534) 评论(0) 推荐(0) 编辑

摘要: HRESULT CVideoSource::AddVedioPreviewFilter(char* varDeviceName){HRESULT hr = NULL;IMoniker *pMoniker = NULL;IPropertyBag *pPropBag = NULL;BOOL bFind = false;VARIANT varDescriptName;VARIANT varFriendName;VariantInit(&varDescriptName);VariantInit(&varFriendName);// Create the System Device En 阅读全文
posted @ 2011-09-02 11:37 cngreatwall 阅读(881) 评论(0) 推荐(0) 编辑

摘要: HRESULT CVideoSource::EnumVideoDevices(){// Create the System Device Enumerator.HRESULT hr = CoCreateInstance(CLSID_SystemDeviceEnum, NULL,CLSCTX_INPROC_SERVER, IID_ICreateDevEnum, reinterpret_cast<void**>(&m_pDevEnum));if (FAILED(hr)){return hr;}// Create an enumerator for the video captu 阅读全文
posted @ 2011-09-02 11:35 cngreatwall 阅读(570) 评论(0) 推荐(0) 编辑