• <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>
            隨筆 - 64, 文章 - 11, 評論 - 12, 引用 - 0
            數據加載中……

            2013-3 <上>疑問

            13日:
                        一個使用ADO的程序,在程序中使用了_IConnectionPtr conPtr; conPtr->CreateInstance("ADODB.Connection")創建連接。程序在win7上編譯鏈接后,
                  在win7上運行沒有問題,然而在win 2008 server上跑時,創建不了數據連接。返回的錯誤碼表示不支持相應的接口。同樣的代碼拿到win2008上編譯鏈接后在win7,
                  winxp上都能運行。
                  分析:
                  由錯誤碼可以得知是查詢接口時失敗,可以推出它是這樣來導入ado組件的。
                  #import "c:/program files/common files/system/ado/msado15.dll" no_namespace rename("EOF","adoEOF")
                  由win 2008編譯后可以在xp,win7 win2008運行,推出win2008的連接GUID版本是舊的。并且2008不支持新的版本。
                  解決辦法:
                     簡單的方法,從win2008 的相應目錄把msado15.dll拷到某個地方,改寫上面的import是從相應的文件夾導入,再編譯鏈接即可。
                     改代碼的方法:查出win 2008連接IID={00000550-0000-0010-8000-00aa006d2ea4},有了這個IID我們改代碼的方法就有多種了。這里介紹封一個函數的方式。
                     這種方式其實有缺點,我們信奉接口是穩定的。如果擔心,應采用上述最簡單的辦法。
                       
            HRESULT OriginalCreateConnection(_Connection *pCon)
            {
                HRESULT hr 
            = 0L;
                pCon 
            = NULL;
                CComPtr
            <IClassFactory> cfPtr;
                CComPtr
            <IUnknown> unPtr;
                CLSID clsid;
                IID    iidCon;

                CLSIDFromProgID(L
            "ADODB.Connection"&clsid);
                
            if(FAILED(hr = CoGetClassObject(clsid, CLSCTX_ALL, 0, IID_IClassFactory, (void **)&cfPtr)))
                
            {
                    
            return hr;
                }

                
            if(FAILED(hr = cfPtr->CreateInstance(0, IID_IUnknown, (void **)&unPtr)))
                
            {
                    
            return hr;
                }

                
                IIDFromString(L
            "{00000550-0000-0010-8000-00aa006d2ea4}",&iidCon);
                
            if(FAILED(hr == unPtr->QueryInterface(iidCon, (void **)&pCon)))
                
            {
                    pCon 
            = NULL;
                    
            return hr;
                }

                
            return hr;
            }
             
            24日:
                  弱序在這里是指a < b,反地來b < a也可能成立的一種比較關系。STL中的排序容器中不能有弱序關系,當弱序關系存在于STL中的排序容器中時會產生錯誤。舉個例子下面的比較就
                  是弱序關系,if(a.year > b.year) return false; if(a.month > b.month) return false; ......。如果應用于容器的排序就會出現錯誤。
            25日:
                  關于對時的問題,對是的服務器沒有聯網并且不對,或者雖然聯網了但是時區和客戶端不統一時。客戶端和服務端對時,如果此時客戶端聯網。會造成客戶端的時間走的過快或者過慢。
            29日:
                  在ubuntu環境中,到linux kernel源碼目錄行make menuconfig提示找不到curses.h頭文件,可以看出是沒有安裝相應的庫。
                     sudo apt-get install libncurses5-dev libncursesw5-dev 安裝好庫之后,再輸行Linux內核配置工具成。

            posted on 2013-03-13 17:28 Robertxiao 閱讀(1211) 評論(0)  編輯 收藏 引用 所屬分類: 問題集錦

            狠狠色综合久久久久尤物| 久久久www免费人成精品| 亚洲国产小视频精品久久久三级| 久久人爽人人爽人人片AV| 国产精品久久新婚兰兰| 久久国产欧美日韩精品免费| 99久久精品影院老鸭窝| 久久91精品国产91久久小草| 久久久老熟女一区二区三区| 亚洲午夜久久久影院| 国产精品久久久久久久久免费| 久久青青草原亚洲av无码app| 蜜臀久久99精品久久久久久小说| 99久久99久久精品免费看蜜桃 | 久久天天躁狠狠躁夜夜不卡| A狠狠久久蜜臀婷色中文网| 久久91亚洲人成电影网站| 精品久久久久久无码人妻蜜桃| 久久久久久无码国产精品中文字幕| 久久久99精品成人片中文字幕| 久久夜色精品国产亚洲av| 99久久无色码中文字幕人妻| 狠狠色婷婷久久一区二区| 久久国产精品久久| 久久精品国产亚洲AV无码娇色| 久久青青草原国产精品免费 | 亚洲国产成人精品无码久久久久久综合 | 成人亚洲欧美久久久久| 一本久久精品一区二区| 狠狠色婷婷综合天天久久丁香| 国产成人精品久久| 99久久精品国产高清一区二区| 少妇人妻综合久久中文字幕| 亚洲国产欧洲综合997久久| 久久久久亚洲AV无码去区首| 伊人久久亚洲综合影院| 国产精品熟女福利久久AV| 99精品国产在热久久| 久久亚洲精品人成综合网| 香港aa三级久久三级老师2021国产三级精品三级在 | 亚洲精品乱码久久久久久按摩|