none
我用CoCreateInstance時的返回值為0x800700c1,該如何解決? RRS feed

  • 問題

  • 以下是我的部分:
     HRESULT   hr;  

     hr   =   CoInitialize(NULL);  
     if ( !SUCCEEDED( hr ) )
     {
    .......................... 
     }

     IADsADSystemInfo   *pSys;  
     hr   =   CoCreateInstance(CLSID_ADSystemInfo,  
      NULL,  
      CLSCTX_INPROC_SERVER,  
      IID_IADsADSystemInfo,  
      (void**)&pSys); 
     if ( !SUCCEEDED( hr ) )
     {
    就是程式會到此處,hr=0x800700c1
      ...................
     }

    2009年6月1日 上午 07:03

解答

  • 樓主您好
    您的程式應該是直接從MSDN copy出來的嗎??
    我也有寫過類似的程式
    不過用的與樓主不一樣
    程式如下
    ::CoInitialize( NULL );  

     CLSID clsid; 
     IDispatch* pDisp;

    HRESULT hr = ::CLSIDFromProgID( _T("ActMulti.ActEasyIF.3"), &clsid);
     hr = ::CoCreateInstance( clsid, NULL, CLSCTX_ALL, IID_IDispatch, (LPVOID *)&pDisp);
    我覺得樓主應該是名稱CLSID_ADSystemInfo有問題,因為這一個名稱大多需要轉換
    不然就是用一整串的數字
    以上是我的經驗
    提供樓主參考

    2009年6月1日 上午 08:02

所有回覆

  • 樓主您好
    您的程式應該是直接從MSDN copy出來的嗎??
    我也有寫過類似的程式
    不過用的與樓主不一樣
    程式如下
    ::CoInitialize( NULL );  

     CLSID clsid; 
     IDispatch* pDisp;

    HRESULT hr = ::CLSIDFromProgID( _T("ActMulti.ActEasyIF.3"), &clsid);
     hr = ::CoCreateInstance( clsid, NULL, CLSCTX_ALL, IID_IDispatch, (LPVOID *)&pDisp);
    我覺得樓主應該是名稱CLSID_ADSystemInfo有問題,因為這一個名稱大多需要轉換
    不然就是用一整串的數字
    以上是我的經驗
    提供樓主參考

    2009年6月1日 上午 08:02
  • 問題是前兩天還是可以用的,今天我修改了一下程式就不行了。
    還有就是我這程式是從網上copy的,主要是想獲取本地用戶的域信息。

    2009年6月1日 上午 08:10
  • 不知道是不是電腦的問題,今天又正常了,感謝voen425的幫助。

    2009年6月2日 上午 06:48