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

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一区| 国产一区二区三区四区hd| 欧美视频一区二区三区| 欧美激情一区二区三区不卡| 欧美激情亚洲自拍| 欧美日韩中文字幕| 国产毛片一区二区| 亚洲福利视频网站| 99精品国产在热久久| 亚洲一二区在线| 欧美一区二区三区在线播放| 久久亚洲综合| 亚洲精品小视频| 亚洲一区欧美二区| 久热re这里精品视频在线6| 欧美日本一道本| 国产视频综合在线| 最近中文字幕日韩精品| 亚洲免费一级电影| 免费观看日韩av| 一区二区三区你懂的| 久久成年人视频| 欧美日韩国产综合新一区| 国产一区二区精品丝袜| aaa亚洲精品一二三区| 久久久亚洲国产美女国产盗摄| 亚洲高清不卡av| 亚洲视频在线看| 久久综合电影| 国产精品一级二级三级| 亚洲精品欧美极品| 久久久九九九九| 欧美激情麻豆| 欧美视频一区在线| 欧美风情在线观看| 国产亚洲欧美日韩美女| 日韩视频免费在线观看| 久久久久久久波多野高潮日日 | 亚洲午夜激情网站| 美女91精品| 午夜精品美女久久久久av福利| 欧美久久久久久蜜桃| 在线国产精品播放| 久久精品人人做人人综合 | 亚洲午夜一区二区| 亚洲激情小视频| 久久午夜精品| 黄色成人在线网址| 久久久亚洲精品一区二区三区 | 日韩视频一区二区在线观看| 久久一综合视频| 黑人极品videos精品欧美裸| 欧美亚洲三级| 亚洲图片激情小说| 欧美视频中文字幕在线| 日韩一区二区免费高清| 91久久精品美女| 欧美激情欧美激情在线五月| 亚洲人体大胆视频| 亚洲国产精品va| 欧美成人一区二区三区片免费| 1769国产精品| 亚洲成在人线av| 欧美电影资源| 中日韩高清电影网| 一区二区三区毛片| 国产视频观看一区| 久久久伊人欧美| 久久久久久久久久久一区 | 亚洲美女免费精品视频在线观看| 欧美韩国日本一区| 99在线热播精品免费| 一区二区三区福利| 国产热re99久久6国产精品| 久久久免费av| 麻豆亚洲精品| 中文国产成人精品| 亚洲欧美日本伦理| 亚洲高清视频中文字幕| 亚洲黄色一区| 国产精品一页| 欧美成人情趣视频| 欧美激情第8页| 亚洲美女中文字幕| 夜夜嗨一区二区| 国产精品永久入口久久久| 久久久久久久欧美精品| 欧美成人a视频| 欧美一区=区| 久久天堂成人| 亚洲午夜视频在线| 久久高清免费观看| 日韩午夜激情电影| 欧美在线亚洲综合一区| 亚洲国产综合视频在线观看| 一区二区三区av| 在线观看日韩av电影| 亚洲高清在线观看一区| 国产精品卡一卡二卡三| 久久天堂av综合合色| 欧美日韩在线观看一区二区三区| 久久久久9999亚洲精品| 欧美精品亚洲二区| 麻豆久久久9性大片| 国产精品国产三级国产专区53| 免费成人av在线| 国产欧美日韩视频在线观看| 亚洲精品一二| 亚洲激情电影在线| 欧美在线观看一二区| 亚洲欧美日韩另类精品一区二区三区 | 亚洲级视频在线观看免费1级| 中文久久乱码一区二区| 亚洲国产欧美在线| 久久成人人人人精品欧| 亚洲综合第一| 欧美日韩国产123| 欧美国产激情| 国语自产精品视频在线看抢先版结局 | 久久精品在线视频| 国产精品红桃| 日韩一区二区电影网| 亚洲精品美女在线| 久久亚洲私人国产精品va媚药| 欧美在线观看视频在线| 国产精品欧美一区喷水| 一区二区免费看| 亚洲一区二区免费视频| 欧美猛交免费看| 亚洲精品极品| 亚洲欧洲一区二区在线播放| 久久亚洲一区二区| 免费日韩成人| 亚洲高清久久网| 欧美成人免费在线视频| 亚洲国产精品久久久久婷婷884 | 久久国产欧美日韩精品| 国产精品一区免费观看| 亚洲综合999| 欧美伊人精品成人久久综合97| 国产精品久久久久久久9999| 亚洲一区在线观看视频| 久久gogo国模裸体人体| 狠狠色丁香婷婷综合久久片| 麻豆久久久9性大片| 亚洲网站啪啪| 欧美日韩精品欧美日韩精品| 亚洲精品美女在线| 一本大道久久a久久综合婷婷| 欧美日韩国产天堂| 亚洲一区二区三区777| 欧美在线网址| 激情五月综合色婷婷一区二区| 久久精品国产99精品国产亚洲性色| 久久先锋资源| 亚洲欧洲一区二区在线观看| 欧美日韩精品在线播放| 亚洲一区三区视频在线观看| 久久久综合香蕉尹人综合网| 亚洲日本欧美日韩高观看| 欧美日韩国产精品专区| 亚洲愉拍自拍另类高清精品| 久久在线视频在线| 亚洲免费不卡| 国产精品一区二区黑丝| 狂野欧美激情性xxxx| 9久草视频在线视频精品| 久久精品免费电影| 日韩亚洲不卡在线| 国产亚洲一区在线播放| 欧美激情偷拍| 久久都是精品| 99re热精品| 欧美gay视频| 小嫩嫩精品导航| 亚洲日本成人女熟在线观看| 国产精品入口尤物| 欧美国产日本高清在线| 欧美一区二区高清在线观看| 亚洲欧洲一区| 欧美99在线视频观看| 欧美一区二区三区视频免费| 日韩视频一区二区三区在线播放免费观看| 国产精品一区二区久久精品| 欧美激情导航| 久色成人在线| 欧美一区二区高清在线观看| 一区二区欧美激情| 亚洲三级免费电影| 欧美a级片一区| 久久色在线观看| 欧美一级播放| 亚洲在线观看免费视频| 亚洲精品一级| 亚洲国产精品va在线观看黑人| 国产午夜精品麻豆| 国产精品视频免费一区| 欧美日韩一区二区免费视频| 欧美肥婆在线|