青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

kenlistian

厚積薄發. 勤為槳,思為帆

   :: 首頁 :: 新隨筆 ::  :: 聚合  :: 管理 ::
  73 隨筆 :: 4 文章 :: 22 評論 :: 0 Trackbacks

在vc6中編譯一個MFC程序時其中有段代碼在創建數據庫連接報錯。

  其源碼如下:

   其中聲明

   _ConectPtr m_pConn,在函數中

    HRESULT hr = m_pConn.CreateInstance(__uuidof(Connection));  //_T("ADODB.Connection"));
    if(FAILED(hr))
    {       
          return false;
    }

   后來在檢查,發現需要調用AfxOleInit()初始化組件即可解決。而我在文件中是加入了::CoInitialize(),但是在實際運行中該函數并沒有起到作用。

而在所宣言中,AfxOleInit包含了CoInitialize()。但是為啥AfxOleInit能解決數據連接的CreateInterface問題呢?觀察

AfxOleInit的源碼。
--------------------------------------------------------------------------------  
BOOL AFXAPI AfxOleInit()
{
    _AFX_THREAD_STATE* pState = AfxGetThreadState();
    ASSERT(!pState->m_bNeedTerm);    // calling it twice?

    // Special case DLL context to assume that the calling app initializes OLE.
    // For DLLs where this is not the case, those DLLs will need to initialize
    // OLE for themselves via OleInitialize.  This is done since MFC cannot provide
    // automatic uninitialize for DLLs because it is not valid to shutdown OLE
    // during a DLL_PROCESS_DETACH.
    if (afxContextIsDLL)
    {
        pState->m_bNeedTerm = -1;  // -1 is a special flag
        return TRUE;
    }

    // first, initialize OLE
    SCODE sc = ::OleInitialize(NULL);    //該句子做初始化ole
    if (FAILED(sc))
    {
        // warn about non-NULL success codes
        TRACE1("Warning: OleInitialize returned scode = %s.\n",
            AfxGetFullScodeString(sc));
        goto InitFailed;
    }
    // termination required when OleInitialize does not fail
    pState->m_bNeedTerm = TRUE;

    // hook idle time and exit time for required OLE cleanup
    CWinThread* pThread; pThread = AfxGetThread();
    pThread->m_lpfnOleTermOrFreeLib = AfxOleTermOrFreeLib;

    // allocate and initialize default message filter
    if (pThread->m_pMessageFilter == NULL)
    {
        pThread->m_pMessageFilter = new COleMessageFilter;
        ASSERT(AfxOleGetMessageFilter() != NULL);
        AfxOleGetMessageFilter()->Register();
    }
    return TRUE;

InitFailed:
    AfxOleTerm();
    return FALSE;
}

可見,AfxOleInit()是封裝了OleInitialize()來初始化com組件;
查詢網上資料說:OleInitialize內部調用了CoInitialize 。在OleInitialize比ConInitialize多了以下支持:  
  Clipboard    
  Drag   and   drop    
  Object   linking   and   embedding   (OLE)    
  In-place   activation    
  如果你不需要這些附加功能,就用CoInitialize或CoInitializeEx。

但是在本人程序中調用CoInitialize不行而AfxOleInit可以,難道OleInitialize中創建的所附幾個在ADO com控件上用到,但是在寫了一個控制臺上的ado程序,調用CoInitialize卻是可行的。其中細節和玄妙打個標記,容以后在研究吧,偷懶了,如果發現CoInitalize不行就用AfxOleInit吧。

0-----

汗顏:因為在app的InitInstance中的粗心末尾加了一句::UnCoInitialize(),造成coinitalize錯誤。實際上2個函數都可以初始化ado組件。mark。

posted on 2008-01-09 16:38 kenlistian 閱讀(6171) 評論(2)  編輯 收藏 引用

評論

# re: AfxOleInit 和CoInitlize的區別 2008-02-25 22:03 lls
我在控制臺程序中不能用初始化啊  回復  更多評論
  

# re: AfxOleInit 和CoInitlize的區別 2008-02-26 10:49 萬連文
記憶中AfxOleInit是對CoInitialize的成對封裝,就是簡單一點點。  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美在线免费视屏| 欧美激情第六页| 亚洲国产欧美在线| 欧美精品在线极品| 亚洲午夜性刺激影院| 亚洲欧美在线磁力| 国内激情久久| 嫩草影视亚洲| 亚洲一区日韩在线| 欧美本精品男人aⅴ天堂| 亚洲精品综合精品自拍| 国产精品欧美一区二区三区奶水| 性欧美精品高清| 亚洲欧洲中文日韩久久av乱码| 亚洲卡通欧美制服中文| 国产精品免费看片| 欧美成人免费一级人片100| 亚洲婷婷免费| 亚洲国产日日夜夜| 久久久久久网址| 亚洲新中文字幕| 1769国产精品| 国产精品成人午夜| 久久麻豆一区二区| 一区二区三区日韩在线观看| 麻豆精品精品国产自在97香蕉| 亚洲在线视频免费观看| 国产在线观看一区| 国产精品日本精品| 欧美美女福利视频| 美国成人直播| 久久国产成人| 亚洲欧美一区二区三区极速播放| 亚洲精品影视在线观看| 久久亚洲春色中文字幕| 欧美一区二区国产| 亚洲视频一二区| 中文在线一区| 亚洲乱码国产乱码精品精可以看| 今天的高清视频免费播放成人| 国产精品制服诱惑| 欧美视频官网| 欧美视频福利| 国产精品v欧美精品v日韩精品| 欧美剧在线观看| 欧美国产在线观看| 美女尤物久久精品| 久久精品国产成人| 亚洲视频福利| 一本色道久久88精品综合| 亚洲日本欧美日韩高观看| 在线观看久久av| 一区精品在线| 影音先锋一区| 亚洲韩日在线| 91久久精品久久国产性色也91| 亚洲国产精品电影| 亚洲人成网在线播放| 亚洲精品日韩激情在线电影| 亚洲精品综合在线| 一本色道久久99精品综合| 中文一区二区在线观看| 先锋影音国产精品| 久久免费精品日本久久中文字幕| 老司机成人网| 亚洲国产精品专区久久| 亚洲精品视频在线观看免费| 亚洲人成毛片在线播放| 日韩视频亚洲视频| 亚洲一区国产| 美女露胸一区二区三区| 欧美视频日韩视频| 国产亚洲激情在线| 亚洲经典视频在线观看| 亚洲午夜成aⅴ人片| 久久精品理论片| 亚洲国产成人久久| 亚洲一区在线免费观看| 久久精品亚洲一区二区三区浴池| 免费在线欧美视频| 国产精品久久久久久久久久直播 | 亚洲图片欧美一区| 久久精品成人一区二区三区蜜臀| 欧美mv日韩mv国产网站| 夜夜嗨av一区二区三区免费区| 亚洲欧美日韩一区在线| 久久一区二区三区av| 国产精品久久激情| 亚洲第一综合天堂另类专| 亚洲欧美另类在线观看| 美女视频一区免费观看| 亚洲视频在线观看网站| 久久噜噜亚洲综合| 国产乱码精品1区2区3区| 91久久综合亚洲鲁鲁五月天| 欧美一区二区三区久久精品| 欧美aaaaaaaa牛牛影院| 亚洲夜晚福利在线观看| 欧美成人午夜激情在线| 国内精品视频一区| 亚洲永久免费av| 嫩模写真一区二区三区三州| 亚洲麻豆国产自偷在线| 欧美在线精品一区| 欧美成人一区二免费视频软件| 亚洲一区二区精品在线| 久久亚洲一区二区| 激情五月婷婷综合| 亚洲欧美国产精品va在线观看| 欧美1级日本1级| 午夜精品久久久99热福利| 欧美成人tv| 亚洲高清视频一区| 欧美中文在线观看国产| 亚洲精品影院在线观看| 欧美高清在线一区二区| 国产综合色精品一区二区三区| 一区二区三区av| 欧美不卡视频一区发布| 一个色综合av| 欧美午夜不卡影院在线观看完整版免费| 在线精品视频一区二区| 免费91麻豆精品国产自产在线观看| 午夜精品久久久久久久99樱桃| 欧美日韩不卡视频| 一本综合久久| 99视频日韩| 国产精品久久午夜| 性做久久久久久免费观看欧美| 正在播放亚洲一区| 国产精品进线69影院| 亚洲欧美高清| 午夜精品视频| 国产在线拍揄自揄视频不卡99| 久久蜜桃香蕉精品一区二区三区| 久久福利一区| 亚洲国产精品成人精品| 久久青草福利网站| 免费成人网www| 一区二区三区精品视频在线观看| 亚洲美女视频在线观看| 国产精品va| 久久福利视频导航| 久久久久国产精品一区二区| 伊人久久大香线蕉av超碰演员| 欧美激情精品久久久久久变态| 麻豆亚洲精品| 亚洲午夜精品网| 欧美一级片久久久久久久| 狠色狠色综合久久| 亚洲国产第一页| 国产精品区免费视频| 久久天天综合| 欧美日韩国产va另类| 欧美一区二区成人| 久久在线免费| 亚洲综合另类| 久久婷婷国产综合精品青草| 9国产精品视频| 欧美一区二区高清在线观看| 亚洲成人在线网| 中文国产成人精品| 精品二区视频| 亚洲午夜免费视频| 久久久久一区二区三区| 亚洲美女毛片| 久久激情五月丁香伊人| 亚洲日本在线视频观看| 午夜精品一区二区三区在线视 | 久久全国免费视频| 亚洲综合色自拍一区| 久久综合久色欧美综合狠狠| 亚洲天堂视频在线观看| 久热re这里精品视频在线6| 亚洲综合激情| 欧美日韩国产成人高清视频| 久久这里只有| 国产美女精品视频免费观看| 亚洲黄色免费| 亚洲国产综合视频在线观看 | 久久精品视频在线免费观看| 9色精品在线| 免费视频久久| 美女日韩欧美| 国产亚洲欧美激情| 日韩一区二区精品视频| 亚洲人成免费| 麻豆国产va免费精品高清在线| 久久激情五月激情| 欧美日韩在线一区二区三区| 亚洲国产精品成人久久综合一区| 国产欧美精品xxxx另类| 中日韩视频在线观看| 一本色道婷婷久久欧美| 欧美高清在线视频| 欧美电影资源| 亚洲国内精品| 欧美成人精品高清在线播放| 免费一级欧美片在线播放| 国产一区二区三区高清 |