線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1420
推到 Plurk!
推到 Facebook!

為何我的CoCreateInstance無法建立物件

尚未結案
LeonSun
一般會員


發表:5
回覆:9
積分:2
註冊:2003-10-17

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-05-31 01:23:35 IP:61.229.xxx.xxx 未訂閱
請問各位高手,我想研究使用DirectShow的方法而參考了站上許多範例,我Download了DirectX9,也Cpoy all files from subdirectory 'Include' into C++ Builder6's 'Include', overwrite if exists。也將剛剛 複製'Include'所有的.h檔案加入了以下這兩行字串: #pragma option push -b -a8 -pc -A-/*P_O_Push*/ #pragma option pop /*P_O_Pop*/ 也加入了strmiids.lib,dxguid.lib,amstrmid.lib,dmoguids.lib from CBuilder_DX90_libs(網路上下載的) 也勾選了"MFC compatibility" on "Advanced Compiler" tab, "Treat enum types as ints" on "Compiler" tab 程式如下 #include "main.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; //--------------------------------------------------------------------------- HRESULT InitCaptureGraphBuilder(void); //--------------------------------------------------------------------------- __fastcall TForm1::TForm1(TComponent* Owner)         : TForm(Owner) { } //--------------------------------------------------------------------------- void __fastcall TForm1::FormCreate(TObject *Sender) {     char strTemp[80];     char str0[10], str1[10], str2[10], str3[10], str4[10], str5[10], str6[10];     sprintf(str0, "0xx\n", S_OK);     sprintf(str1, "0xx\n", REGDB_E_CLASSNOTREG);     sprintf(str2, "0xx\n", E_OUTOFMEMORY);     sprintf(str3, "0xx\n", E_INVALIDARG);     sprintf(str4, "0xx\n", E_UNEXPECTED);     sprintf(str5, "0xx\n", CLASS_E_NOAGGREGATION);     strcpy(strTemp, str0);     strcat(strTemp, str1);     strcat(strTemp, str2);     strcat(strTemp, str3);     strcat(strTemp, str4);     strcat(strTemp, str5);     HRESULT hr;     if ((hr = InitCaptureGraphBuilder()) == S_OK)         ShowMessage("OK");     else     {         sprintf(str6, "0xx", hr);         strcat(strTemp, str6);         ShowMessage(strTemp);     } } //--------------------------------------------------------------------------- HRESULT InitCaptureGraphBuilder(void) {     IGraphBuilder **ppGraph;            // Receives the pointer.     ICaptureGraphBuilder2 **ppBuild;    // Receives the pointer.     if (!ppGraph || !ppBuild)     {         return E_POINTER;     }     IGraphBuilder *pGraph = NULL;     ICaptureGraphBuilder2 *pBuild = NULL;        // Create the Capture Graph Builder.     HRESULT hr = CoCreateInstance(CLSID_CaptureGraphBuilder2, NULL,         CLSCTX_INPROC_SERVER, IID_ICaptureGraphBuilder2, (void**)&pGraph);     if (SUCCEEDED(hr))     {         // Create the Filter Graph Manager.         hr = CoCreateInstance(CLSID_FilterGraph, 0, CLSCTX_INPROC_SERVER,             IID_IGraphBuilder, (void**)&pGraph);         if (SUCCEEDED(hr))         {             // Initialize the Capture Graph Builder.             pBuild->SetFiltergraph(pGraph);                // Return both interface pointers to the caller.             *ppBuild = pBuild;             *ppGraph = pGraph; // The caller must release both interfaces.             return S_OK;         }         else         {             pBuild->Release();         }     }     return hr; // Failed } //--------------------------------------------------------------------------- Compile ok,但執行程式就不會成功,情形如下圖 有哪位高手可以告訴小弟哪裡出問題嗎?
frankiech
中階會員


發表:7
回覆:78
積分:52
註冊:2002-08-29

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-05-31 08:45:52 IP:61.222.xxx.xxx 未訂閱
請參考 : http://delphi.ktop.com.tw/topic.php?topic_id=44511
LeonSun
一般會員


發表:5
回覆:9
積分:2
註冊:2003-10-17

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-06-04 00:41:17 IP:61.229.xxx.xxx 未訂閱
對不起,最近在忙所以遲了點,Sorry~ 請問frankiech大大,試過了但出現 [Linker Fatal Error] Fatal: Unable to open file 'WEBDSNAP.BPI' 這是什麼東東ㄚ,我找不到,請問要如何解決呢?謝謝
系統時間:2024-05-19 10:03:17
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!